我想从表中获取前 3 行,但它还应该考虑并列情况。
我有一个看起来像这样的表
+--------+---------+
| NAME | COST |
+--------+---------+
| EA | 500 |
| SPSD | 475 |
| IA | 450 |
| NST | 450 |
| AAD | 350 |
| ECOM | 325 |
+--------+---------+
我想要的结果应该是这样的
+--------+---------+
| NAME | COST |
+--------+---------+
| EA | 500 |
| SPSD | 475 |
| IA | 450 |
| NST | 450 |
+--------+---------+
我的查询:
SELECT *
FROM TABLE
ORDER BY COST DESC
LIMIT 0,3
但它只返回前 3 行,如果第 4 行等于第 3 行则不处理。 我该如何处理查询中的这种情况?
最佳答案
使用子查询获取第三高的成本:
select * from table
where cost >= (SELECT COST FROM TABLE
ORDER BY COST DESC
LIMIT 3,1)
ORDER BY c_cost DESC
(我不太确定 LIMIT 3,1
部分,因为我不是 MySQL 专家。测试看看!)
关于mysql - 选择前 N 行并处理并列情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30615648/