【问题标题】:SQL queries- 2nd largest number [closed]SQL查询-第二大数字[关闭]
【发布时间】:2016-07-31 20:49:41
【问题描述】:

使用sql,如何通过查询找到第二大的数字?

【问题讨论】:

  • SELECT ~0 - 1; ;-)
  • 我认为这个问题很有用,因为它简单但具体......

标签: mysql sql sqlite mysql-python


【解决方案1】:

对于第二大使用这个:-

SELECT MAX(num) FROM TABLE
  WHERE num NOT IN (SELECT MAX(num) FROM Employee) 

如果您需要以通用方式使用它,则使用它来获得第 N 个最大的数字

SELECT * /*This is the outer query part */
FROM TABLE table1
WHERE (N-1) = ( /* Subquery starts here */
SELECT COUNT(DISTINCT(table2.num))
FROM TABLE table2
WHERE table2.num > table1.num)

所以使用上面的查询,如果你想找到第二大的,那么查询会变成......

SELECT * /*This is the outer query part */
FROM TABLE table1
WHERE 1 = ( /* Subquery starts here */
SELECT COUNT(DISTINCT(table2.num))
FROM TABLE table2
WHERE table2.num > table1.num)

【讨论】:

    【解决方案2】:

    或使用限制:

    SELECT number
    FROM numbers
    WHERE 1=1
    ORDER BY number DESC
    LIMIT 1, 1
    

    【讨论】:

      【解决方案3】:

      这是一个工作示例:http://sqlfiddle.com/#!9/9aed1/1

      SELECT MAX(number) FROM test WHERE number < (SELECT MAX(number) FROM test )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-13
        相关资源
        最近更新 更多