gpt4 book ai didi

sql - 如何 "HAVING COUNT(DISTINCT(col1, col2))"

转载 作者:行者123 更新时间:2023-12-02 08:49:48 26 4
gpt4 key购买 nike

所以我有一个包含三列的表 - col1col2col3。我需要选择 col1 的值,这些值 col2col3 的一个组合共享行。在理想世界中,我会这样写:

SELECT col1 FROM table
GROUP BY col1
HAVING COUNT(DISTINCT(col2, col3)) = 1

如何在现实世界中做到这一点?

到目前为止,我有两个解决方案 - 按 col1col2 分组,按 col1col3 他们加入结果;或按所有三个分组,然后按 col1 分组。不幸的是,我得到(非常)不同的工作计数。

数据库在 SQL Server 2005 上。

最佳答案

SELECT col1
FROM table
GROUP BY col1
HAVING MAX(col2) = MIN(col2) AND MAX(col3) = MIN(col3)

更复杂:

SELECT col1
FROM
(
SELECT
col1,
ROW_NUMBER() OVER (PARTITION BY col1 ORDER BY col2, col3) as rn
FROM table
) T
GROUP BY col1
HAVING MAX(rn) = 1

关于sql - 如何 "HAVING COUNT(DISTINCT(col1, col2))",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9310525/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com