我有一张名字和年份的表。
Name Year
Adam 1960
Adam 1970
Adam 1980
Alex 1955
Alex 1956
Brian 1963
Cody 1959
.... ....
如何列出并显示名称和年份的重复项,以便显示3列:name和2“year”列,以生成如下结果:
Adam 1960 1970
Adam 1960 1980
Adam 1970 1980
Alex 1955 1956
Adam有3个结果,因此它显示为3个不同的行:
然而,在Alex(2个结果)的情况下,它只显示一行。
现在出现非重复的名称。
它还需要按最左边的年份值排序,然后按最右边的年份值
排序另外,有没有办法在不使用“GROUP BY”的情况下执行此操作?
由于
答案 0 :(得分:4)
基本上,只需使用INNER JOIN
加入表格。
SELECT a.Name, a.Year MinYear, b.Year MaxYEar
FROM TableName a
INNER JOIN TableName b
ON a.Name = b.Name AND a.Year < b.Year
答案 1 :(得分:0)
你能试试这个解决方案吗?
SELECT t1.name, t1.age, t2.age FROM dbo.Table_1 AS t1
CROSS APPLY dbo.Table_1 AS t2
WHERE t1.name = t2.name
AND t1.age < t2.age