私はテーブルfood
と2つのカラム:fruit
とspecies
を持っています。各種は、異なる値のfruit
の複数の行を持つことができます。私はちょうど1 fruit
を食べて、これらの種の値がfruit
であることを知っているすべての種を探したい。HAVINGクエリの複数の用語
このクエリは、fruit
の唯一の1種類を食べる種を見つけるために働いていた:
select species
from food
group by species
having count(species) = '1'
は、今私は2列、1 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 'は数字ではなく文字列の値です –
「果物(果物)= 1」を持つ必要はありませんか? – melpomene
@a_horse_with_no_nameこれはSQLでもPostgreSQLのTBHでも大丈夫です。「1」は未知型のリテラルです。実際には、たとえば 'NUMERIC'リテラルを指定するための_correct_方法です。個人的に私は明示的に 'NUMERIC '1' 'を書いていますが、' '1' 'だけでもOKです。型は演算子や他の引数から推論されます。プロトコルメッセージに型を明示的に指定しないかぎり、バインドパラメータを使用すると、これが起こります。 –