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
我想找到供應商最廉價的部件,所以像下面的輸出:
widget_id | vendor_id | price
------------------------------
1 | 101 | 10.00
3 | 102 | 6.00
在MySQL或SQLite的,我可以查詢
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中的代碼不正確。不保證返回正確的結果。 –