【问题标题】:How to get the max of a column in MySQL如何在 MySQL 中获取列的最大值
【发布时间】:2016-07-24 10:17:12
【问题描述】:

我想根据表xnumber 列中存在的最大数量来获取一行的id

例如: 我在x 表中有以下记录。

 id      | number  
---------+---------
 9       | 289     
 10      | 100     
 24      | 187     
 54      | 345     

我希望查询返回id 54 (SELECT x.id ...),方法是找出number 列的最大值为345。。 p>

我怎样才能成功?

【问题讨论】:

    标签: mysql sql select max


    【解决方案1】:

    请尝试以下查询:

    解决方案 #1:

    SELECT 
    x.*
    FROM x
    INNER JOIN 
    (
      SELECT 
       MAX(number) AS max_number
      FROM x
    ) AS maxTable
    ON x.number = maxTable.max_number
    

    说明:

    SELECT 
      MAX(number) AS max_number
    FROM x;
    

    结果:

    最大表:

    max_number
       345
    

    现在在您的表x 和上面maxTable.max_numberx.number 上名为maxTable 的表之间创建一个inner join

    x 表:

        =====================
        | id      | number  |
        =====================
        | 9       | 289     |
        ---------------------
        | 10      | 100     |
        ---------------------
        | 24      | 187     |
        ---------------------
        | 54      | 345     |
        ---------------------
    

    因此,在最终输出中,您将仅获得 maxTable.max_number 在其 number 列中的条目。

    解决方案 #2:

    您也可以使用WHERE IN 来完成此操作。

    SELECT
    *
    FROM x
    WHERE x.number IN ( SELECT MAX(number) FROM x )
    

    【讨论】:

    • 这是正确的答案。感谢您的快速回复!
    【解决方案2】:

    你为什么不这样做:

    select t.id
    from t
    order by number desc
    limit 1;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-06
      • 2018-10-14
      • 1970-01-01
      • 2015-01-23
      • 2016-04-14
      • 2021-06-02
      • 2020-09-22
      • 2015-12-30
      相关资源
      最近更新 更多