【发布时间】:2016-08-04 14:23:23
【问题描述】:
在给定特定值的总和的情况下,我想订购成对(或 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
我想要一个最终的表格,应该按每个姓名+姓氏+年龄的工资总和排序 DESC,并保持具有相同姓名+姓氏+年龄的行彼此相邻,尽管 ID 列不同.这将是预期的结果:
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
您可以看到 Name+Surname+Age = "Rick Jams 22" 的行位于顶部,因为它们的总和为 1305,然后是 "Mike Brown 50" (sum = 220) 和 "John Smith 30" "(总和 = 12)。 此外,结果表中的行数必须相同。
如何使用 Oracle SQL 做到这一点?
感谢您的帮助
【问题讨论】:
-
存储年龄通常是个坏主意,因为每一天都是某人的生日——数据可能会失效。
-
@jarlh:也许是他们晋升到那个薪水的年龄。
-
您好,这些行表示具有不同 id 但相同姓名+姓氏+年龄的重复项。目标是了解哪些是与最高薪水相关的重复项。