多行连接

时间:2017-02-17 08:13:09

标签: sql-server join multiple-join-rows

请帮我解决下一个问题。 我有下一张桌子:

|  Name  |  Size  |  DateTime    |
|--------|--------|--------------| 
| Adi    |  120   |  2017-01-26  |
|--------|--------|--------------|
| Mark   | 225    | 2017-01-11   |
|--------|--------|--------------|
| Adi    | 150    | 2017-01-28   |
|--------|--------|--------------|
| Adi    | 115    | 2017-02-01   |
|--------|--------|--------------|
| Adi    | 170    | 2017-02-05   |
|--------|--------|--------------|

我需要再添加一个列,其中包含每个名称的所有注册(如果存在),或者按DateTime列进行dedereb,如下所示:

| Name   | Size1 | Size2 | Size3 | 
|--------|-------|-------|-------| 
| Adi    | 120   | 150   | 115   | 
|--------|-------|-------|-------| 

我尝试过:

SELECT DISTINCT table.Name, table.Size
FROM database.table AS table
JOIN database.table AS table1
ON table.Name = table.Name

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

按您想要唯一的列分组。像min()这样的聚合函数适用于每个唯一的组,而不是整个结果集

select name, 
       min(size) as size1, 
       max(size) as size2
from your_table
group by name
having min(size) <> max(size)