我有一个存储产品价格信息的表,该表看起来类似于,(不是主键)
no name price date
1 paper 1.99 3-23
2 paper 2.99 5-25
3 paper 1.99 5-29
4 orange 4.56 4-23
5 apple 3.43 3-11
现在我想选择表中“名称”字段出现不止一次的所有行。基本上,我希望我的查询返回前三行。
我试过:
SELECT * FROM product_price_info GROUP BY name HAVING COUNT(*) > 1
但我收到一条错误消息:
column "product_price_info.no" must appear in the GROUP BY clause or be used in an aggregate function
最佳答案
SELECT *
FROM product_price_info
WHERE name IN (SELECT name
FROM product_price_info
GROUP BY name HAVING COUNT(*) > 1)
关于sql - Postgres : select all row with count of a field greater than 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36358833/