【问题标题】:SQL Max QuestionSQL Max 问题
【发布时间】:2010-06-18 20:45:29
【问题描述】:

所以我想获取最新日期 max(asofdate) 的行,但我是 MySQL 文盲,似乎无法获取。这是我的头 select * from Reports.InternalLoanExposureFlat where asofdate = max(asofdate) 似乎有道理,但控制台似乎不同意我的看法。

提前致谢。

【问题讨论】:

    标签: sql mysql


    【解决方案1】:

    如果你不想冒返回多个结果的风险,那么你应该使用这个:

    SELECT * 
    FROM Reports.InternalLoanExposureFlat
    ORDER BY asofdate DESC
    LIMIT 1
    

    【讨论】:

    • 找出最大值(asofdate)的方法多么昂贵!
    • @Frank Computer:他没有说他想得到 max(asofdate),他说要得到最近日期的行。
    • 他想要获取日期最近的行,Mark 的查询会起作用,我的也一样(我认为)。问题是,一个或另一个更好,例如在可读性、性能、便携性等方面?
    【解决方案2】:

    试试:

    SELECT * FROM Reports.InternalLoanExposureFlat
    WHERE asofdate = (SELECT MAX(asofdate) FROM Reports.InternalLoanExposureFlat) 
    

    【讨论】:

    • 如果几行包含asofdate等于MAX(asofdate)怎么办?
    【解决方案3】:

    我同意控制台;-)。

    max 函数返回一个组或整个表的最大值。

    试试:

    SELECT somecolumn, MAX(asofdate) FROM mytable GROUP BY somecolumn
    
    SELECT MAX(asofdate) FROM mytable
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      • 2015-06-18
      • 1970-01-01
      • 2018-11-08
      相关资源
      最近更新 更多