我需要一个查询来选择所有行中的所有条目,其中一个特定的2列对是重复的。例如,如果我的table (id int, Project varchar, Version varchar, Deployer varchar, Date DateTime)
,我要获取其中存在重复项目/版本的所有行。我做过这个
SELECT *
FROM Deployments
GROUP BY Project, Version
HAVING count(*) > 1;
但这似乎只能让我得到每个项目/版本对的第一行。我想得到所有的行。
我如何做到这一点?
3条答案
按热度按时间bd1hkmkf1#
在联接分组数据的位置使用联接,以仅选择适合的行。
在我的情况下,有相同的项目编号和版本
csbfibhn2#
使用exists逻辑是一种方法:
您当前使用聚合的查询处于关闭状态,因为它使用
SELECT *
与GROUP BY
. 有效版本可能是:kd3sttzy3#
当然,窗口函数是一种简单的方法: