给定一定值的SUM,我想对成对的行(或3,4等的组)进行排序。
这些行基于Name + Surname + Age的连接是连续的
为了更好地理解给定的下表:
ID Name Surname Age Salary
------------------------------
1 John Smith 30 2
2 John Smith 30 10
3 Rick James 22 300
4 Rick James 22 1000
5 Rick James 22 5
6 Mike Brown 50 200
7 Mike Brown 50 20
我希望有一个最终表,该表应按每个Name + Surname + Age的薪金之和按DESC顺序排序,尽管ID列不同,但具有相同Name + Surname + Age的行彼此相邻。这将是预期的结果:
ID Name Surname Age Salary
------------------------------
3 Rick James 22 300
4 Rick James 22 1000
5 Rick James 22 5
6 Mike Brown 50 200
7 Mike Brown 50 20
1 John Smith 30 2
2 John Smith 30 10
如您所见,名称+姓氏+年龄=“ Rick Jams 22”的行位于顶部,因为它们的总和为1305,其后是“ Mike Brown 50”(总和= 220)和“ John Smith 30”(总和) = 12)。此外,结果表中的行数必须相同。
如何使用Oracle SQL做到这一点?
谢谢你的帮助
SELECT t.*,
COALESCE(SUM(salary) OVER (PARTITION BY name, surname, age), 0) ss
FROM mytable t
ORDER BY
ss DESC
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句