mysql - 选择不同的行,将它们转换为列并计算值

标签 mysql count pivot distinct

我在从一张表中提取数据时遇到问题。

我有一个表,t_stat,如下:

id, country, instId, date
 1, Belgium,      1, 2014-04-06  
 2, Germany,      2, 2013-05-07  
 3, Italy,        3, 2018-06-08 

结果我需要的是:我需要选择每个不同的国家,并计算它在每个日期的安装量。它应该看起来像这样:

Date        Belgium  Germany Italy
2013-05-07  0        1       0
2014-04-06  1        0       0
2018-06-08  0        0       1

我知道,用pivot可以得到result,但是我不能构造query。

提前致谢。

最佳答案

这应该可行

SELECT
    date,
    SUM( country = 'Belgium' ) AS Belgium,
    SUM( country = 'Germany' ) AS Germany,
    SUM( country = 'Italy' ) AS Italy
FROM t_stat
GROUP BY date

关于mysql - 选择不同的行,将它们转换为列并计算值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53704547/

相关文章:

mysql - 在不同的 percona xtradb 集群节点上重用 EBS 快照

mysql - 使用不同的 foreign_key 加入并搜索?

mysql - 如何选择评论数、投票总数以及活跃用户是否投票

python - 在 Python 中使用 Pandas Dataframes 对数据进行排序

php - 返回多个计数值

php - 在 mariadb 存储过程中设置 PHP 变量; SQLSTATE[42S22] : Column not found

MySQL:使用列表中的随机数更新所有行

php - 在 MySQL 中以特定方式透视表

sql - 选择值作为列

c# - 如何在 C# 中旋转列表