sql 查询表格中多列重复的数据并显示该表的其他列

我们一般情况下通过分组函数group by来查询重复的列

SELECT [column1],[column2] FROM [dbo].[Table] where 1=1) R group by [column1],[column2] having count(*) > 1

但是查询出的结果不能显示该表的其他列

想要查询一张表中有多个列重复的数据且也要显示该表的其他列

  SELECT M.*
    FROM  [dbo].[Table] M,
  (SELECT *
    FROM (SELECT [column1],[column2] FROM [dbo].[Table] where 1=1) R group by [column1],[column2] having count(*) > 1) M1
  where M.[column1]=M1.[column1] AND M.[column2]=M1.[column2]

原文地址:https://www.cnblogs.com/ruanraun/p/groupby.html

时间: 2024-10-10 04:46:37

sql 查询表格中多列重复的数据并显示该表的其他列的相关文章

sql 把一个用逗号分隔的多个数据字符串变成一个表的一列

USE [tms]GO/****** Object: UserDefinedFunction [dbo].[StrToTable] Script Date: 2017/4/26 9:06:20 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER Function [dbo].[StrToTable](@str varchar(1000))Returns @tableName Table( str2table varchar(50))

SQL查询列表中每种类型的第一条

SQL查询列表中每种类型的第一条 SELECT * FROM NewsReport AS T WHERE ID IN (SELECT TOP 1 ID FROM NewsReport WHERE TypeID=T.TypeID and IsDeleted = 0 ORDER BY ID DESC )  SQL子查询,类型名字,加分页 select * from (select ROW_NUMBER() over(order by CreateTime desc) as number,ID,Nam

Sql 查询语句中的类型转换

1: CAST ( (SalesAgreement.HTPrice / 10000) as decimal(18,2) ) as HTPrice 2: 转换货币如:10,000.00 select '¥'+convert(nvarchar,cast(1343432432434.8 as money),1) Sql 查询语句中的类型转换

SQL Server 2005中的分区表(三):将普通表转换成分区表(转)

在设计数据库时,经常没有考虑到表分区的问题,往往在数据表承重的负担越来越重时,才会考虑到分区方式,这时,就涉及到如何将普通表转换成分区表的问题了. 那么,如何将一个普通表转换成一个分区表 呢?说到底,只要将该表创建一个聚集索引,并在聚集索引上使用分区方案即可. 不过,这回说起来简单,做起来就复杂了一点.还是接着上面的例子,我们先使用以下SQL语句将原有的Sale表删除. --删除原来的数据表 drop table Sale 然后使用以下SQL语句创建一个新的普通表,并在这个表里插入一些数据. -

PHP--动态生成sql查询表格

<?php include("../../../Applications/MAMP/htdocs/dbconfig.php"); $link = mysql_connect( $dbconfig['host'], $dbconfig['username'], $dbconfig['userpass'] ); if(!$link){ die("连接数据库失败!错误号为:".mysql_errno()."失败原因".mysql_error())

sql查询语句中on和where的区别

数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. 在使用left jion时,on和where条件的区别如下: on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录. where条件是在临时表生成好后,再对临时表进行过滤的条件.这时已经没有left join的含义(left join是必须返回左边表的记录),条件不为真的就全部过滤掉. 表一:tab1 表二:tab2 两条SQL: select * form ta

用sql查询当天,一周,一个月的数据

数据查询,不管在网站还是在系统,都很常见,下文是介绍最常见的以日期查询的语句 select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0   //查询当天日期在一周年的数据 select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0   //查询当天的所有数据 --查询当天: select * from info where DateDiff(dd,d

在SQL查询结果中添加自增列的两种方法

解决办法<一>:如果想查询出这个表的信息,并添加一列连续自增的ID,可用如下查询语句: SELECT Row_Number() over ( order by getdate() ) as init , * FROM 表名 解决办法<二>: 使用关键字IDENTITY创建临时表 SELECT IDENTITY(int,1,1) as Nid,* INTO #T FROM 表名 SELECT * FROM #T 原文地址:https://www.cnblogs.com/crrc/p/

sql对于表格中列的删改

mysql与oracle char为定长字符串 var为可变字符串 修改表名:rename table1 to table2:(mysql) alter table1 rename to table2(oracle) 新增列名:alter table product(表名)add column product_1 varchar(40) not null,add column product_2;(mysql) alter table product  (表名)   add  (product_