【发布时间】:2020-04-08 10:20:02
【问题描述】:
我有一张这样的桌子:
create table product_company (
id int PRIMARY KEY,
productName varchar(100),
companyName varchar(100),
price int
);
我想知道每家公司价格排名第二的产品名称。
例如,如果company1 有三个产品product1=30、product2=50 和product3=15(分配显示该公司中每个产品的价格),那么product1 在@987654327 中的价格属性中排名第二@ 并且我想编写一个返回如下内容的查询:
company1 product1
company2 ...
...
我的意思是对于每家公司,我想知道该公司中价格排名第二的产品。 我不知道如何使用 group by 子句,因为 group by 通过聚合函数可以正常工作,但我不想要最高价格。
我想用标准的 sql 查询和子句编写这个查询,并且没有一些在某些 DBMS 中可能不起作用的特殊功能
【问题讨论】:
-
你运行的是哪个版本的 MySQL?
-
没关系。我可以使用 (limit offset,index) 但我不知道如何使用这样的东西并编写正确的查询
标签: mysql sql subquery greatest-n-per-group window-functions