假设我有一个包含列和数据的表tbl_marks,如下所示.
name id section1 section2 section3 section4 year
cherry 1 100 101 102 103 2016
cherry 1 200 201 202 203 2015
cherry 1 300 301 302 303 2014
Run Code Online (Sandbox Code Playgroud)
预期输出格式:
cherry 1 100101102103 200201202203 300301302303
Run Code Online (Sandbox Code Playgroud)
我希望将一年中所有部分的分数连接起来,然后以空格分隔另一年的分数.所以我需要单列5列.(姓名,身份证,第1年分数,第2年分数,第3年分数)
请让我知道如何更新下面的查询.谢谢.
查询:选择名称,ID,??? 来自tbl_marks group by id;
用途GROUP_CONCAT:
SELECT name,
id,
GROUP_CONCAT(CONCAT(section1, section2, section3, section4)
ORDER BY section1 SEPARATOR ' ')
FROM yourTable
GROUP BY name, id
Run Code Online (Sandbox Code Playgroud)
这个答案假定您希望在结果集中三列,三列作为name,id以及那名/ ID组标记的CSV列表(123,456,789在这种情况下).