【发布时间】:2021-12-17 02:59:59
【问题描述】:
我没有得到我在这里缺少的东西。对我来说,似乎我在 select 语句中包含了每个非聚合值
SELECT TOP 5
f_ev2.Identifier,
AVG(f_ev2.Identifier) AS Identifier,
MIN(f_ev2.Event_dtm) AS Erster_PZ_Scan
FROM DB_DWH_MART_AKM_PLT.VW_F_EVENT f_ev2
INNER JOIN
(
SELECT
DISTINCT f_ev.AUFTRAGGEBER_EKP AS EKP
FROM DB_DWH_MART_AKM_PLT.VW_F_EVENT f_ev
WHERE f_ev.PROCESS_NO = 1075
) AS manifest_users
ON f_ev2.AUFTRAGGEBER_EKP = manifest_users.EKP
WHERE f_ev2.event_dtm BETWEEN (date -1) AND (date -10)
GROUP BY f_ev2.Identifier
HAVING (f_ev2.PROCESS_NO = 1 OR f_ev2.PROCESS_NO = 2)
我为什么会得到
SQL Selected non-aggregate values must be part of the associated group
【问题讨论】:
-
A
HAVING通常用于聚合函数,如 AVG、MIN。因此,PROCESS_NO 的标准应该在 WHERE 子句中。另外,您认为这有意义吗:SELECT x, AVG(x) FROM t GROUP BY x -
@LukStorms 你说得对,谢谢指出!