Mysql 复杂查询使用多个查询创建多列计数器
我已从查询返回下一个数据:Mysql 复杂查询使用多个查询创建多列计数器,mysql,grouping,counting,Mysql,Grouping,Counting,我已从查询返回下一个数据: 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 S
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
我知道您可以通过一个只包含两列的查询来完成,如下所示:
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
但问题是,我需要获取第二个表,因为最终的程序(scriptcase)需要获取第二个表来创建统计信息。
有什么办法吗?您在寻找条件聚合吗
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文档中,我没有发现任何有用的东西。非常感谢!