gpt4 book ai didi

sql - Oracle SQL : getting only one max row using multiple criteria

转载 作者:行者123 更新时间:2023-12-04 13:06:17 25 4
gpt4 key购买 nike

我有这张 table :

Department   NAME   EMAIL         ID     DATE1         DATE2
1 John asd@asd.com 74 05/04/2007 05/04/2007
1 Sam asd@asd.com 23 05/04/2007 05/04/2007
1 Tom asd@asd.com 46 05/04/2007 03/04/2007
1 Bob bob@asd.com 23 01/01/2006
2 Tom asd@asd.com 62 02/02/2000 05/05/1997

我想获得最大的行(每个部门只有一个) DATE1 ,但它不是唯一的!因此,如果有多个结果,我想获得最大值 DATE2 , 如果有多个,则返回 ID 最大的那个。

所以查询的结果是:
1            John   asd@asd.com   74     05/04/2007    05/04/2007
2 Tom asd@asd.com 62 02/02/2000 05/05/1997

非常感谢。

最佳答案

您需要使用 ROW_NUMBER 函数:

SELECT Department, NAME, EMAIL, ID, DATE1, DATE2
FROM (
SELECT ROW_NUMBER() OVER (PARTITION BY Department ORDER BY DATE1 DESC, DATE2 DESC, ID DESC) AS RowNumber,
Department, NAME, EMAIL, ID, DATE1, DATE2
FROM MyTable ) t
WHERE RowNumber = 1

关于sql - Oracle SQL : getting only one max row using multiple criteria,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8791322/

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