gpt4 book ai didi

sql - 基于两列的最大值

转载 作者:行者123 更新时间:2023-12-02 14:37:44 24 4
gpt4 key购买 nike

我有一个包含多个列的表,其中包含月份和年份。我试图根据第 1 列、第 2 列确定最大的月份和年份。

我有一个用于测试表的 DDL。

CREATE TABLE "TEST" 
( "COLUMN1" VARCHAR2(6 BYTE),
"COLUMN2" VARCHAR2(6 BYTE),
"YEAR" NUMBER,
"MONTH" NUMBER
);

这是示例表中的数据。

REM INSERTING into TEST
SET DEFINE OFF;
Insert into TEST (COLUMN1,COLUMN2,YEAR,MONTH) values ('A','A',11,4);
Insert into TEST (COLUMN1,COLUMN2,YEAR,MONTH) values ('A','A',14,3);
Insert into TEST (COLUMN1,COLUMN2,YEAR,MONTH) values ('A','A',11,5);
Insert into TEST (COLUMN1,COLUMN2,YEAR,MONTH) values ('A','A',14,1);

我想获得最大月份和年份的记录。当我尝试使用此查询检索记录时

 SELECT t.COLUMN1, t.COLUMN2, max(t.YEAR), max(t.MONTH) 
FROM TEST t
group by COLUMN1, COLUMN2;

我得到了这个结果

enter image description here

在我看来,它将最大年份和最大月份独立于其他列。预期结果应该是 enter image description here

我怎样才能得到适当的结果?我尝试了多次自连接均无济于事。

最佳答案

您想使用Oracle的内置LAST (或 FIRST )与 MAX 如下:

SELECT t.COLUMN1,
t.COLUMN2,
MAX(t.YEAR),
MAX(t.MONTH) keep (dense_rank last ORDER BY YEAR nulls first) MONTH
FROM TEST t
GROUP BY COLUMN1,
COLUMN2;

它只会找到最近一年中的最大值。

关于sql - 基于两列的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41917925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com