鉴于我有列A B C D ... .. Z
我想在A,B,C上分组,有计数(*)> 1然后对于这些行中的每一行,我想要选择未包含在聚合中的其余列。
结果就像
Occurrences A B C D E F G ------- Z
3 e e k q r y e ------- j
3 e e k f t d t ------- y
3 e e k w e q c ------- d
2 f r s w e q c ------- d
2 f r s w e q c ------- d
我该怎么做?
答案 0 :(得分:1)
你不想要GROUP BY
,你想要ORDER BY
。要获取第一列,您可以使用ANSI标准的窗口函数,并且大多数数据库都支持这些函数:
select t.*
from (select count(*) over (partition by a, b, c) as occurrences,
t.*
from t
order by a, b, c
) t
where occurrences > 1;