0
私は以下の 'ウィジェット'データベースに似たデータベースを持っています。GROUP BY PostgreSQLクエリここでGROUP BY句にないカラムが必要です
widget_id | vendor_id | price
------------------------------
1 | 101 | 10.00
2 | 101 | 9.00
3 | 102 | 6.00
4 | 102 | 7.00
私はベンダーが安いウィジェットを見つけたいので、以下のような出力:MySQLやSQLiteので
widget_id | vendor_id | price
------------------------------
1 | 101 | 10.00
3 | 102 | 6.00
、私は
SELECT widget_id, vendor_id, min(price) AS price FROM widgets GROUP BY(vendor_id)
を問い合わせることができしかし、それはそうこれはSQL仕様に反しているということです。 PostgreSQLでは、私は上記のクエリを実行することができません。エラーメッセージは、 "widget_idはGROUP BY句に現われなければならず、集約関数で使わなければなりません"。私はPostgreSQLの要点をよく見ることができますが、最小価格を持つウィジェットのwidget_idを望むのは完全に合理的なようです。
私は間違っていますか?
MySQLとSQLiteのコードが正しくありません。正しい結果を返すことは保証されていません。 –