使用以下样本数据,我需要获得金额为20的所有产品,因为它是最大的数量。我试过这个查询,但似乎对我不起作用,因为我不能将LIMIT
设置为适当的数量,因为我不知道有多少产品具有该数量。
SELECT * FROM Product
ORDER BY Quantity DESC
LIMIT 2
+----+---------+----------+
| Id | Name | Quantity |
+----+---------+----------+
| 5 | Pencil | 20 |
| 8 | Stapler | 20 |
| 4 | Pen | 5 |
| 9 | Sheet | 3 |
+----+---------+----------+
我需要获得数量最多的产品,不一定是20,20只是一个例子吗?
答案 0 :(得分:2)
如果您希望所有结果的数量都是20,那么您需要做的就是在WHERE子句中指定:
SELECT * FROM Product WHERE Quantity = 20;
如果您期望值始终相同,则无需包含ORDER BY。除非您想要数量为20的第一个结果数量,否则也不需要LIMIT。
答案 1 :(得分:2)
如果要选择最大值为Quantity
的所有产品,请使用:
SELECT *
FROM Product
WHERE Quantity = (SELECT MAX(Quantity) FROM Product);
答案 2 :(得分:1)
如果您想强制使用orderby
和desc
,请尝试
Select * from Product
WHERE Quantity = 20
ORDER BY quantity DESC;
formore details on orderby and desc但在你的情境中并不是强制性的
答案 3 :(得分:1)
由于您编辑了问题,因此您可以获得20或更高版本的问题,使用以下查询将其排序为最大值:
SELECT * FROM Product
WHERE Quantity => 20
ORDER BY Quantity DESC;