假设我有一个包含列和数据的表 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
预期的输出格式:
cherry 1 100101102103 200201202203 300301302303
我想将一年所有部分的分数连接起来,然后用空格分隔另一年的分数。 所以我需要单行 5 列。 (name, id, year1成绩, year2成绩, year3成绩)
请让我知道我应该如何更新下面的查询。谢谢。
查询:选择名称、ID、???来自 tbl_marks 按 id 分组;
最佳答案
使用GROUP_CONCAT
:
SELECT name,
id,
GROUP_CONCAT(CONCAT(section1, section2, section3, section4)
ORDER BY section1 SEPARATOR ' ')
FROM yourTable
GROUP BY name, id
此答案假定您希望在结果集中包含三列,这三列分别是 name
、id
以及该名称/id 的 CSV 标记列表组(在本例中为 123,456,789
)。
SQLFiddle
(由@Luke 提供)关于mysql - 在sql中使用group关键字检索单行中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40008934/