PostgreSQL SELECT COUNT返回一堆1

时间:2019-02-24 20:01:31

标签: postgresql

以下是我的代码,该代码返回我要查找的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;

1 个答案:

答案 0 :(得分:1)

您不应在分组依据和聚合函数中使用同一列,因为这样只能获得1(按相同值分组的值的唯一计数为1) 如果您要计算每年的DISTINCT nameid,且总和(支出)> 68,则应使用

    SELECT yearid, COUNT(DISTINCT nameid)
    FROM     shop
    WHERE
        yearid >= 2000
    GROUP BY   yearid
    HAVING  SUM(spend) > 98;