以下是我的代码,该代码返回我要查找的nameid的正确行数(75)。然后,当我在顶部执行COUNT(DISTINCT nameid)时,它仅返回145 1s而不是查询中的行数(75)。它只是说
1
1
1
..
1
(145 rows)
我在做什么错了?
SELECT
DISTINCT nameid
FROM
shop
WHERE
yearid >= 2000
GROUP BY
nameid,
yearid
HAVING
SUM(spend) > 98;
答案 0 :(得分:1)
您不应在分组依据和聚合函数中使用同一列,因为这样只能获得1(按相同值分组的值的唯一计数为1) 如果您要计算每年的DISTINCT nameid,且总和(支出)> 68,则应使用
SELECT yearid, COUNT(DISTINCT nameid)
FROM shop
WHERE
yearid >= 2000
GROUP BY yearid
HAVING SUM(spend) > 98;