选择一个列,其中该行的最大值在Oracle的第三列之上分组

马克·罗杰斯

在Oracle中,如何选择在第三列分组的列中该行具有最大值的列?一个例子可能是最简单的(我为这个例子愚蠢了):

id | year | color  | groupID | typeID | personID
---+------+--------+---------+--------+---------
1  | 2010 | red    | 10      | 3      | 1
2  | 2011 | yellow | 10      | 15     | 1
3  | 2012 | blue   | 10      | 12     | 2
4  | 2009 | green  | 25      | 6      | 2
5  | 2010 | purple | 25      | 17     | 2
6  | 2011 | orange | 25      | 22     | 3

我希望每个输出行都具有按组ID分组的颜色以及该组的最大年份值。

我想看到的是这样的输出:

1 | 2010 | blue   | 10 | 3  | 1
2 | 2011 | blue   | 10 | 15 | 1
3 | 2012 | blue   | 10 | 12 | 2
4 | 2009 | orange | 25 | 6  | 2
5 | 2010 | orange | 25 | 17 | 2
6 | 2011 | orange | 25 | 22 | 3

换句话说,我希望输出大部分镜像我的表,但是我需要使每行颜色与该组中最大年份的行中的颜色相匹配。

MT0

Oracle安装程序

CREATE TABLE table_name ( id,year,color,groupID,typeID,personID) AS
SELECT 1,2010,'red',10,3,1 FROM DUAL UNION ALL
SELECT 2,2011,'yellow',10,15,1 FROM DUAL UNION ALL
SELECT 3,2012,'blue',10,12,2 FROM DUAL UNION ALL
SELECT 4,2009,'green',25,6,2 FROM DUAL UNION ALL
SELECT 5,2010,'purple',25,17,2 FROM DUAL UNION ALL
SELECT 6,2011,'orange',25,22,3 FROM DUAL;

查询

SELECT id,
       year,
       MAX( color ) KEEP ( DENSE_RANK LAST ORDER BY year )
                    OVER ( PARTITION BY groupID ) AS color,
       groupId,
       typeId,
       personId
FROM table_name;

输出

        ID       YEAR COLOR     GROUPID     TYPEID   PERSONID
---------- ---------- ------ ---------- ---------- ----------
         1       2010 blue           10          3          1 
         2       2011 blue           10         15          1 
         3       2012 blue           10         12          2 
         4       2009 orange         25          6          2 
         5       2010 orange         25         17          2 
         6       2011 orange         25         22          3 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Mysql按两列分组并选择第三列的最大值

来自分类Dev

EXCEL条件格式:定义一个行范围,在该行范围内标识列中的最大值

来自分类Dev

创建视图,在一个列中选择与另一列相关的最大值

来自分类Dev

创建视图,在一个列中选择与另一列相关的最大值

来自分类Dev

如何选择*并按一列分组,同时选择另一列的最大值?

来自分类Dev

查询:选择并显示下一个最大值作为新列

来自分类Dev

从两个表中选择但仅针对其中一列中的最大值

来自分类Dev

pandas数据框:按另一个列分组后获得列的最大值

来自分类Dev

pandas数据框:按另一个列分组后获得列的最大值

来自分类Dev

R中的数据框:创建一个新列,其中包含第二列中的值,第二列中的值在第三列中命名

来自分类Dev

选择其中一个联接具有最大值的记录

来自分类Dev

R中的数据框:创建一个新列,其中包含第二列中的值,该第二列在第三列中命名

来自分类Dev

根据python中另一个列表的最大值对数组的列索引进行分组

来自分类Dev

CQL(cassandra)-仅选择其中一列中具有最大值的行

来自分类Dev

列值是另一个值相同的另一列的最大值

来自分类Dev

UPDATE列,其中不包含PL / SQL的oracle中每一行的最大值

来自分类Dev

MySQL:从列中选择最后一个(最大值)值并计数所有行

来自分类Dev

PowerShell:列出CSV文件行,其中第三列和最后一列之间至少有一个值等于“ 0”或“ 1”

来自分类Dev

根据一列中的最大值选择分组记录

来自分类Dev

分组多列时如何选择最大值或最后一条记录?

来自分类Dev

选择列的最大值

来自分类Dev

选择列的最大值和该行的相应数据的最有效方法

来自分类Dev

在重复项中选择值,在一列中没有最大值(Oracle)

来自分类Dev

从文件中读取两列,然后在第三列中写入一个值

来自分类Dev

Oracle SQL:如何从派生列中选择最大值

来自分类Dev

根据属于组集的不同列的最大值创建一个等级列

来自分类Dev

一个data.table列基于其他列的最大值

来自分类Dev

通过csv列对对象进行分组,然后从另一列中选择最大值

来自分类Dev

如何使用awk根据一列选择最大值的行并按第二列分组?

Related 相关文章

  1. 1

    Mysql按两列分组并选择第三列的最大值

  2. 2

    EXCEL条件格式:定义一个行范围,在该行范围内标识列中的最大值

  3. 3

    创建视图,在一个列中选择与另一列相关的最大值

  4. 4

    创建视图,在一个列中选择与另一列相关的最大值

  5. 5

    如何选择*并按一列分组,同时选择另一列的最大值?

  6. 6

    查询:选择并显示下一个最大值作为新列

  7. 7

    从两个表中选择但仅针对其中一列中的最大值

  8. 8

    pandas数据框:按另一个列分组后获得列的最大值

  9. 9

    pandas数据框:按另一个列分组后获得列的最大值

  10. 10

    R中的数据框:创建一个新列,其中包含第二列中的值,第二列中的值在第三列中命名

  11. 11

    选择其中一个联接具有最大值的记录

  12. 12

    R中的数据框:创建一个新列,其中包含第二列中的值,该第二列在第三列中命名

  13. 13

    根据python中另一个列表的最大值对数组的列索引进行分组

  14. 14

    CQL(cassandra)-仅选择其中一列中具有最大值的行

  15. 15

    列值是另一个值相同的另一列的最大值

  16. 16

    UPDATE列,其中不包含PL / SQL的oracle中每一行的最大值

  17. 17

    MySQL:从列中选择最后一个(最大值)值并计数所有行

  18. 18

    PowerShell:列出CSV文件行,其中第三列和最后一列之间至少有一个值等于“ 0”或“ 1”

  19. 19

    根据一列中的最大值选择分组记录

  20. 20

    分组多列时如何选择最大值或最后一条记录?

  21. 21

    选择列的最大值

  22. 22

    选择列的最大值和该行的相应数据的最有效方法

  23. 23

    在重复项中选择值,在一列中没有最大值(Oracle)

  24. 24

    从文件中读取两列,然后在第三列中写入一个值

  25. 25

    Oracle SQL:如何从派生列中选择最大值

  26. 26

    根据属于组集的不同列的最大值创建一个等级列

  27. 27

    一个data.table列基于其他列的最大值

  28. 28

    通过csv列对对象进行分组,然后从另一列中选择最大值

  29. 29

    如何使用awk根据一列选择最大值的行并按第二列分组?

热门标签

归档