gpt4 book ai didi

sql - TSQL 选择一个我也在计算的字段

转载 作者:行者123 更新时间:2023-12-04 23:47:50 25 4
gpt4 key购买 nike

我正在尝试计算字段 D 中不同值的数量,按字段 A、B 和 C 分组。如果计数返回 1,我想知道 D 的值是多少。

例如:

SELECT A, B, C, COUNT(D) AS D_COUNT
FROM EXAMPLE_TABLE
GROUP BY A, B, C
HAVING COUNT(D) = 1

自从我完成 SQL 以来已经有一段时间了,我一直在研究这个问题,我相信我可能忽略了一些非常简单和明显的东西。例如,我尝试过多次连接到同一个表,但我一直遇到“D”不包含在聚合或分组中的问题。有任何想法吗?

最佳答案

由于在每一组中 D 都有一个非 NULL 值,因此您可以只使用 MAXMIN 以查看该值是什么。

SELECT A,
B,
C,
COUNT(D) AS D_COUNT,
MAX(D) AS D
FROM EXAMPLE_TABLE
GROUP BY A,
B,
C
HAVING COUNT(D) = 1

对这个适用于 COUNT(D) = @N 的问题的更一般的回答是使用窗口聚合。例如

;WITH T
AS (SELECT A,
B,
C,
D,
COUNT(D) OVER (PARTITION BY A, B, C) AS D_COUNT
FROM EXAMPLE_TABLE)
SELECT *
FROM T
WHERE D_COUNT = @N

关于sql - TSQL 选择一个我也在计算的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17307206/

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