我有一个基本查询,可以根据需要运行,并告诉我哪些人对事物'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
关于如何获取完整结果集的任何想法?非常感谢。
您需要两个聚合级别:首先是按人员(这是您现有的查询),然后是整体:
select group_concat(res) res
from (
select person || ' ' || count(*) res
from mytable
where thing = 'a'
group by person
) t