【问题标题】:SQLite: group_concat only seems to pull first row?SQLite:group_concat 似乎只拉第一行?
【发布时间】:2020-04-19 09:25:23
【问题描述】:

我有一个基本查询,它可以根据需要运行,并告诉我哪些人有多少物品用于“a”:

SELECT Person || ' ' || COUNT(ResponsibleThing) FROM table WHERE thing='a' GROUP BY Person;

Person || ' ' || COUNT(ResponsibleThing)
-----------------------------------------------
Joe     340
Chris   34
Dave    612
Fred    272

我真正想要的是将此结果集折叠为 CSV,以便我可以在另一列上进行旋转,结果集如下所示:

thing Person || '   ' || COUNT(ResponsibleThing)
----- -----------------------------------------
a     Joe     340,Chris     34,Dave     612,Fred    272
b     Chris     100, Frank     34

似乎group_concat 将是要走的路,但奇怪的是,当我尝试调整上述查询时,我只会返回第一个条目: SELECT group_concat((SELECT Person || ' ' || COUNT(ResponsibleThing) FROM table WHERE thing='a' GROUP BY Person));

group_concat((SELECT Person || '  ' || COUNT(ResponsibleThing) FROM table WHERE thing='a' GROUP BY Person))
----------------------------------------------------------------------------------------------------
Joe     340

关于如何连接完整的结果集有什么想法吗?非常感谢。

【问题讨论】:

    标签: sql sqlite group-by group-concat


    【解决方案1】:

    您需要两个级别的聚合:首先是按人(即您现有的查询),然后是整体:

    select group_concat(res) res
    from (
        select person || ' ' || count(*) res
        from mytable
        where thing = 'a'
        group by person
    ) t
    

    【讨论】:

      猜你喜欢
      • 2018-08-12
      • 1970-01-01
      • 2021-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      • 1970-01-01
      • 2016-06-13
      相关资源
      最近更新 更多