【问题标题】:Complex query to use several queries to create a multicolumn counter使用多个查询创建多列计数器的复杂查询
【发布时间】:2017-05-26 04:16:44
【问题描述】:

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

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

但问题是我需要获取第二个表,因为最终程序(脚本案例)需要获取第二个表来创建统计信息。 有什么办法吗?

【问题讨论】:

    标签: mysql grouping counting


    【解决方案1】:

    您在寻找条件聚合吗?

    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;
    

    【讨论】:

    • 哇@Gordon Linoff!效果很好!我从来没有使用过这个条款 (SUM(col='value')) 我不明白你所说的“条件聚合”有什么强大的功能,但是如果你给我一个链接,我会非常感谢你或解释它的强大功能以及可以帮助我们的用途!在 mysql 文档中,我没有发现任何有用的信息。非常感谢!
    猜你喜欢
    • 2013-08-17
    • 2011-09-12
    • 2010-10-15
    • 2021-02-20
    • 2011-11-29
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多