我有一個表food
,有兩列:fruit
和species
。每個物種可以有多個行,具有不同的值fruit
。我想找到所有正好吃到1 fruit
的物種,並且知道這些物種的價值fruit
。HAVING查詢中的多個術語
這個查詢工作發現,只吃1種fruit
種類:
select species
from food
group by species
having count(species) = '1'
現在我想2列,一個species
和其他相關fruit
。如何在having
參數中使用多個術語進行查詢?我想:
select species, fruit
from food
group by species
having count(species) = '1'
但得到以下錯誤:
ERROR: column "food.fruit" must appear in the
GROUP BY clause or be used in an aggregate function
LINE 1: select species, fruit
^
感謝您的幫助!
請不要比較數字與字符串。 '1'是一個數字''1''是一個字符串值,而不是數字 –
它不一定是'有count(fruit)= 1'嗎? – melpomene
@a_horse_with_no_name在SQL或至少PostgreSQL TBH中,這很好,''''是一個未知類型的文字。例如,它實際上是_correct_方法來指定一個'NUMERIC'文字。我個人更喜歡明確寫出'NUMERIC'1'',但'1'也可以,類型是從操作符和其他參數中推斷出來的。如果您使用綁定參數,那麼會發生這種情況,除非您在協議消息中明確指定了其類型。 –