使用多个查询创建多列计数器的复杂查询

Complex query to use several queries to create a multicolumn counter

我有从查询返回的下一个数据:

agent   group
-----   ------
a1      g1
a2      g1
a1      g2
a1      g2
a2      g1
a3      g2

我需要得到下一个总结如下:

agent   g1_total    g2_total
-----   --------    --------
a1      1           2
a2      2           0
a3      0           1

我知道您可以通过仅包含两列的单个查询来完成,如下所示:

SELECT t1.agent, COUNT(t1.agent)
FROM t1
GROUP BY agent

但问题是我需要获取第二个 table,因为最终程序(scriptcase)需要获取第二个 table 才能创建统计信息。 有什么办法吗?

您在寻找条件聚合吗?

SELECT t1.agent, COUNT(t1.agent) as total_cnt,
       SUM(group = 'g1') as g1_cnt,
       SUM(group = 'g2') as g2_cnt
FROM t1
GROUP BY t1.agent;