我正在將MySQL查詢重寫爲PostgreSQL。我有桌子與文章和另一個表與類別。我需要選擇所有類別,其中至少有1條:PostgreSQL中的HAVING子句
SELECT c.*,(
SELECT COUNT(*)
FROM articles a
WHERE a."active"=TRUE AND a."category_id"=c."id") "count_articles"
FROM articles_categories c
HAVING (
SELECT COUNT(*)
FROM articles a
WHERE a."active"=TRUE AND a."category_id"=c."id") > 0
我不知道爲什麼,但這個查詢導致錯誤:
ERROR: column "c.id" must appear in the GROUP BY clause or be used in an aggregate function at character 8
但是,這個結果必須分組尼韋或我必須使用DISTINCT(),不是嗎? – 2011-03-31 08:28:18
當然可以。對不起......我更正了查詢並提供了替代 – 2011-03-31 08:37:43
沒有「GROUP BY」的'HAVING'在SQL中是合法的,並且也受到PostgreSQL的支持。這與問題無關。 – 2011-03-31 20:39:20