Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 复杂查询使用多个查询创建多列计数器_Mysql_Grouping_Counting - Fatal编程技术网

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文档中,我没有发现任何有用的东西。非常感谢!