mysql - 在sql中使用group关键字检索单行中的数据

标签 mysql sql

假设我有一个包含列和数据的表 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

此答案假定您希望在结果集中包含三列,这三列分别是 nameid 以及该名称/id 的 CSV 标记列表组(在本例中为 123,456,789)。

SQLFiddle

(由@Luke 提供)

关于mysql - 在sql中使用group关键字检索单行中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40008934/

相关文章:

sql - BigQuery : Xoring Elements of Two Arrays

c# - 在 Azure 中设置 MySQL 后端以进行 Xamarin 离线同步

sql - MySQL:如何计算特定日期后的周数?

mysql - SQL 查询自动转换为 ElasticSearch 查询

php - 多次使用 foreach

sql - 如何从字符串中删除特定字符,仅当它是字符串中的第一个或最后一个字符时。

sql - JPA 中的自定义连接条件

php - MySQL查询帮助计数请

mysql - 从 MySQL 函数返回一个值

php - 我应该将美国各州存储在我的数据库中还是 PHP 数组中?