ユニークな都市と州にある各ベンダーの名前、都市、州を返すselect文を書く必要があります。私はいくつかの同様のスレッドを見てきましたが、答えのどれも何らかの理由で助けていません。私のコードは正しい結果を返すことができません。MySQLサブクエリで一意の結果を選択しようとする問題
ユニークな都市と州にある各ベンダーの名前、都市、州を返すselect文を記述します。 38行を返す必要があります。
/*problem 6*/
SELECT
vendor_name, vendor_city, vendor_state
FROM
vendors
WHERE
vendor_city || vendor_state NOT IN (SELECT distinct
vendor_city || vendor_state
FROM
vendors
GROUP BY vendor_city, vendor_state having count(*)>1)
ORDER BY vendor_state , vendor_city;
適切なデータを返すサブクエリはありますか? –
'GROUP BY'の列の集合は常に一意なので、' DISTINCT'は余分です。 'IN'節では重複はとにかく違いはありません。連結( '||')は比較の速度を落とします。タプルを比較できるはずです: 'WHERE(vendor_city、vendor_state)NOT IN(...)'です。サブクエリーチェックのほかに、tejuのように、どのような結果が得られますか?行が多すぎますか、行が少なすぎますか?あなたが注文した列を反転すると何が起こりますか?それは何かを明らかにしますか? –
MySQLでは、 '||'演算子は 'OR'の同義語であり、文字列連結ではありません。もし文字列連結が必要なら、 'CONCAT()'関数を使います。 (州と都市を連結すると、両方のケースで同じ値が得られるので、状態= 'aa' city = 'a'とstate = 'a' city = 'aa' – spencer7593