在我的表中,我需要知道每个ID
是否只有一个ID_name
。我怎么写这样的查询?SQL查询:如何由另一列的列组的不同计数
我想:
select ID, count(distinct ID_name) as count_name
from table
group by ID
having count_name > 1
但它永远运行。
有什么想法?
在我的表中,我需要知道每个ID
是否只有一个ID_name
。我怎么写这样的查询?SQL查询:如何由另一列的列组的不同计数
我想:
select ID, count(distinct ID_name) as count_name
from table
group by ID
having count_name > 1
但它永远运行。
有什么想法?
select ID
from YourTable
group by
ID
having count(distinct ID_name) > 1
或
select *
from YourTable yt1
where exists
(
select *
from YourTable yt2
where yt1.ID = yt2.ID
and yt1.ID_Name <> yt2.ID_Name
)
现在,大多数ID
列被定义为primary key
和是唯一的。因此,在常规数据库中,您希望这两个查询都返回一个空集。
选择tt.ID,最大值(tt.myRank)从 ( 由ip.ID选择ip.ID,ip.ID_name, ROW_NUMBER()以上(分区,ip.ID_nameorder通过ip.ID)作为myRank 从YourTable IP )TT 组由tt.ID
这使您与它的每一个ID是ID_NAME
的总数如果你想只有那些ID的具有相关联的一个以上的名称只需添加一个where子句 例如
选择tt.ID,最大值(tt.myRank)从 ( 选择ip.ID,ip.ID_name, ROW_NUMBER()以上(由ip.ID分区,ip.ID_nameorder通过ip.ID)作为myRank 从YourTable IP )TT 其中tt.myRank> 1 组由tt.ID
我要补充一点,我甚至不知道如果我在正确的查询,是因为它从来没有执行! – saghar