在oracle中显示最大年份及其最大月份及其对应值?

时间:2018-04-10 16:25:46

标签: sql oracle oracle11g oracle10g

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

3 个答案:

答案 0 :(得分:2)

您可以尝试以下方法:

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;

希望这有帮助。

答案 1 :(得分:0)

您可以使用:

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

答案 2 :(得分:0)

从table_name中选择*,其中month = (从table_name中选择max(月),其中year = (从table_name中选择max(year)));

这可能是您正在寻找的答案,我使用嵌套查询来达到预期的结果