sql - 如何使用 “Partition By”或 “Max”?

标签 sql oracle max

我有下表(my_data):

year |  X  |  Y
-----+-----+-----
2010 |  A  |  10
2011 |  A  |  20
2011 |  B  |  99
2009 |  C  |  30
2010 |  C  |  40

什么是最好/最小的SQL语句,仅检索与最高年份相关的数据并按“X”分组,如下所示:
year |  X  |  Y
-----+-----+-----
2011 |  A  |  20
2011 |  B  |  99
2010 |  C  |  40

请注意,此结果表将在联接中使用。

最佳答案

select year, x,y
from (
      select year, x, y, max(year) over(partition by x) max_year
      from my data
      )
where  year = max_year

关于sql - 如何使用 “Partition By”或 “Max”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6198320/

相关文章:

php - 使用php检索mysql中两个不同表列字段的总和

sql - Oracle 错误 ORA-00971

基于变量值的 SQL 条件

oracle - LINQPad 和 Oracle

mysql - 按 MAX(time) WHERE time <= x 选择最近的 MySQL 行

mysql - 在Mysql中查找字符串值中的最大值

mysql - 如何加快慢速 SQL 查询

sql - Oracle 12c中选择不包含某列的表

java - 你可以用什么方法创建一个字符串 2000 "spaces"

java - int 数组到 ArrayList 的转换