sql – Postgres:选择具有大于1的字段数的所有行

我有表存储产品价格信息,表看起来类似,(不是主键)
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

现在我想选择“name”字段在表格中出现多次的所有行.基本上,我希望我的查询返回前三行.

我试过了:

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)

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...