【问题标题】:How to do group_concat on two fields in sqlite?如何在sqlite中的两个字段上做group_concat?
【发布时间】:2021-08-21 13:37:03
【问题描述】:

我的cities 表:

year | id | city
2005   10   LA
2005   11   SF
2007   12   NY
2008   13   NO

使用查询:

SELECT year, GROUP_CONCAT(id) 
FROM cities 
GROUP BY year 

我得到了输出:

2005|10,11
2007|12
2008|13

但我想得到的是(例如):

2005|10,LA,11,SF
2007|12,NY
2008|13,NO

换句话说,我想要结果中的 id 和 name,按年份分组,而不仅仅是 id。如何做到这一点?

【问题讨论】:

    标签: sql sqlite group-by group-concat


    【解决方案1】:

    在 SQLite 中,GROUP_CONCAT() 有 2 个参数:要聚合的表达式和分隔符(默认分隔符是 ,)。
    在您的情况下,表达式部分需要多个列,因此您必须通过连接来构建它:

    SELECT year, 
           GROUP_CONCAT(id || ',' || city) AS id_city
    FROM cities
    GROUP BY year;
    

    请参阅demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-17
      • 1970-01-01
      • 2015-12-31
      • 2011-11-22
      • 2012-09-28
      • 1970-01-01
      • 2018-09-23
      相关资源
      最近更新 更多