【发布时间】:2011-12-22 16:33:30
【问题描述】:
假设我有这个查询:
SELECT col1, col2, col3
FROM tab1
GROUP BY col1, col2, col3
HAVING COUNT(*) > 1 -- **************EDIT****************
我希望这组列是唯一的。但是,现在我想添加col4,可以复制,所以添加并分组是行不通的。
在 SQL Server 2008 R2 中有没有比这更好的方法?
SELECT a.col1, a.col2, a.col3, b.col4
FROM (
SELECT col1, col2, col3
FROM tab1
GROUP BY col1, col2, col3
HAVING COUNT(*) > 1 -- **************EDIT****************
) a JOIN tab1 b
ON a.col1 = b.col1
AND a.col2 = b.col2
AND a.col3 = b.col3
编辑:对不起,这就是我要找的。你对我最初发布的查询是正确的,一个简单的 SELECT 就可以了。当存在重复项时,我需要为col1, col2, col3 的每个不同组显示col4 的所有值。
谢谢。
【问题讨论】:
标签: sql sql-server-2008 group-by