在 (T-)SQL 中是否可以通过特定值的出现来过滤记录组,例如 this question about a Python dataframe ?
例如,在下表中,我希望将包含 16 作为 Value
的完整组作为输出。
ID Group Value
1 1 10
2 1 12
3 1 16
4 2 10
5 2 14
6 2 18
7 3 12
8 3 16
9 3 18
我想要的结果输出是
ID Group Value
1 1 10
2 1 12
3 1 16
7 3 12
8 3 16
9 3 18
根据文档和我得到的错误,GROUP BY
或 PARTITION BY
和 HAVING
仅在对总值求和时起作用。
最佳答案
你可以使用EXISTS
:
SELECT *
FROM tab t1
WHERE EXISTS (SELECT 1
FROM tab t2
WHERE t1.[group] = t2.[group]
AND t2.[Value] = 16)
关于基于属性出现的 SQL 过滤器组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50113233/