SQL Server查询以选择与其他列中的唯一值关联的列

时间:2014-11-13 17:03:15

标签: sql sql-server sql-server-2008 select

原谅标题,但我有一张表TRANSACTIONS(ID,AMOUNT,ITEM_NUMBER)`,有1000万行。没有主要或唯一约束。我想重新调整所有具有唯一ITEM_NUMBER的ID。以下是解释我想要返回内容的示例数据 -

1,200,30
2,250,30
2,200,40
3,300,40
3,400,40
4,100,35
4,150,30
1,230,40

在上述情况下,我想返回ID 3,因为它只与一个ITEM_NUMBER相关联。

1 个答案:

答案 0 :(得分:1)

SELECT ID, AMOUNT, ITEM_NUMBER
FROM TRANSACTIONS T
WHERE EXISTS (SELECT 1 
        FROM TRANSACTIONS 
        WHERE ID = T.ID 
        GROUP BY ID 
        HAVING COUNT(DISTINCT ITEM_NUMBER) = 1)

显然,像NONCLUSTERED (ID) INCLUDE (ITEM_NUMBER)这样的指数会有所帮助。