【问题标题】:Gotta catch all products that have the greatest amount必须抓住所有数量最多的产品
【发布时间】:2014-03-14 02:45:33
【问题描述】:

使用以下示例数据,我需要获取数量为 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个只是一个例子?

【问题讨论】:

  • 为什么要投反对票?

标签: php mysql sql


【解决方案1】:

如果要选择最大值为Quantity 的所有产品,请使用:

SELECT *
FROM Product 
WHERE Quantity = (SELECT MAX(Quantity) FROM Product);

【讨论】:

    【解决方案2】:

    如果您想要 Quantity 为 20 的所有结果,那么您需要做的就是在 WHERE 子句中指定:

    SELECT * FROM Product WHERE Quantity = 20;
    

    如果您希望值始终相同,则无需包含 ORDER BY。除非您想要 Quantity 为 20 的第一个结果数,否则也无需 LIMIT。

    【讨论】:

    • 我需要数量更多的产品,不一定是20,20只是一个例子。
    • 然后您只需使用 >、= 来决定您的价值。 'WHERE Quantity > 20'、'WHERE Quantity Quantity > 10'等
    • 对不起,我想你误解了我,克雷格请重新阅读我的问题
    • @Felipe Vagner - 我不明白。无论如何,您都必须在 WHERE 子句中指定某种变量来访问数量。您可以将值更改为您想要的任何值。您是否尝试使用脚本或其他东西动态地执行此操作。
    【解决方案3】:

    如果您想强制使用orderbydesc,请尝试

    Select * from Product WHERE Quantity = 20 ORDER BY quantity DESC;

    formore details on orderby and desc但在你的情况下不是强制的

    【讨论】:

      【解决方案4】:

      由于您编辑了问题,您将获得 20 或以上的问题,使用以下查询从大到小排序:

      SELECT * FROM Product
      WHERE Quantity => 20
      ORDER BY Quantity DESC;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-16
        • 1970-01-01
        • 1970-01-01
        • 2017-03-17
        • 2018-05-27
        相关资源
        最近更新 更多