【问题标题】:Display max year and its max month with their corresponding value in oracle?在oracle中显示最大年份及其最大月份及其对应值?
【发布时间】:2018-04-10 16:25:46
【问题描述】:
Year  Month Value
2015    1   300
2015    2   400
2010    4   100
2016    7   200
2016    8   300
2017    2   100
2017    3   200
2017    6   400

【问题讨论】:

  • 到目前为止您尝试过什么?您是否有部分有效的查询?
  • 感谢它完美的工作:)

标签: sql oracle oracle11g oracle10g


【解决方案1】:

您可以尝试以下方法:

SELECT MAX(year), MAX(month)
     , MAX(value) KEEP ( DENSE_RANK FIRST ORDER BY year DESC, month DESC )
  FROM mytable;

如果您想要每年的最大月份以及相应的值,那么您可以这样做:

SELECT year, MAX(month)
     , MAX(value) KEEP ( DENSE_RANK FIRST ORDER BY month DESC )
  FROM mytable
 GROUP BY year;

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    你可以使用:

    SELECT *
    FROM (SELECT *
          FROM tab t
          ORDER BY Year DESC, Month DESC) s
    WHERE rownum = 1;
    

    【讨论】:

    • OP 希望拥有每一年,但在这里我们可以得到一行值:2017,6,400
    • @BarbarosÖzhan Display max year and its max month 对我来说很明显它是一行,而不是每年最多一个月
    • 嗯,这是一个非常奇怪的问题。因为corresponding这个词,我认为每一年...
    【解决方案3】:

    Select * from table_name where month = (select max(month) from table_name where year = (从 table_name 中选择 max(year)));

    这可能是您正在寻找的答案,我已使用嵌套查询来获得所需的结果

    【讨论】:

      猜你喜欢
      • 2016-11-04
      • 2023-03-16
      • 2012-07-29
      • 2021-11-18
      • 1970-01-01
      • 2015-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多