Mysql 循环多个和

Mysql 循环多个和,mysql,Mysql,对于im构建的报告工具,我希望能够计算到目前为止每个国家记录的“事件”数量。我有以下查询: SELECT 'country', COUNT(*) AS total, SUM(CASE WHEN `country` = 'USA' THEN 1 ELSE 0 END) AS USCount, SUM(CASE WHEN `country` = 'Canada' THEN 1 ELSE 0 END) AS CanadaCount FROM events WHE

对于im构建的报告工具,我希望能够计算到目前为止每个国家记录的“事件”数量。我有以下查询:

SELECT 'country',
      COUNT(*) AS total,
      SUM(CASE WHEN `country` = 'USA' THEN 1 ELSE 0 END) AS USCount,
      SUM(CASE WHEN `country` = 'Canada' THEN 1 ELSE 0 END) AS CanadaCount
  FROM events WHERE `date` > '2015-06-01' AND `date` < '2015-08-01'
选择“国家/地区”,
将(*)算作总数,
求和(当'country`='USA'时,则为1,否则为0结束)作为USCount,
求和(当'country`='Canada'时,则为1,否则为0结束)为CanadaCount
来自“日期”>'2015-06-01'和“日期”<'2015-08-01'的事件

唯一的问题是,当我开始将其他国家加入其中时,情况会变得越来越严重。有没有一种方法可以让我在全国范围内检索每个国家的所有不同计数?谢谢。

请尝试以下SQL语句:

Select country, count (*)
From events
Group by country

请尝试以下SQL语句:

Select country, count (*)
From events
Group by country

按国家名称将其分组,以获得国家统计信息

SELECT country,
  COUNT(*) AS total
 FROM events WHERE `date` > '2015-06-01' AND `date` < '2015-08-01' group by country;
选择国家/地区,
将(*)计为总数
来自按国家分组的“日期”>'2015-06-01'和“日期”<'2015-08-01'的事件;

按国家/地区名称将其分组,以获得国家/地区计数

SELECT country,
  COUNT(*) AS total
 FROM events WHERE `date` > '2015-06-01' AND `date` < '2015-08-01' group by country;
选择国家/地区,
将(*)计为总数
来自按国家分组的“日期”>'2015-06-01'和“日期”<'2015-08-01'的事件;

欢迎查德·沃特金斯:)欢迎查德·沃特金斯:)