如何将相似结果的行合并为一个?例如,这就是我所拥有的:
Title | Actor | StartYear | Genres
Noah | Adam | 2000 | Documentary
Noah | Eve | 2000 | Documentary
Noah | Joshua | 2000 | Documentary
Narnia | Peter | 2005 | Action
Narnia | James | 2005 | Action
我想要的是:
Title | Actor | StartYear | Genres
Noah | Adam, Eve, Joshua | 2000 | Documentary
Narnia | Peter, James | 2005 | Action
此链接中提供的方法STRING_AGG不起作用,因为我有10列。 (或者我错了吗?如果我使用了STRING_AGG,因为其他列不在group by子句中,所以我无法执行查询) Comma separated results in SQL
例如,这可行,
SELECT primaryTitle, STRING_AGG(Actor, ', ') FROM table GROUP BY primaryTitle
这不是
SELECT primaryTitle, STRING_AGG(Actor, ', '), StartYear, Genre FROM table GROUP BY primaryTitle
答案 0 :(得分:2)
您只需要确保您要对未应用聚合函数的所有列进行分组即可。即
SELECT primaryTitle, STRING_AGG(Actor, ', '), StartYear, Genre
FROM table
GROUP BY primaryTitle, StartYear, Genre