sql - 选择同一列上的两个计数

标签 sql mysql select group-by

我有两个选择查询:

SELECT MONTH(date) AS month, count(DISTINCT ip) 
FROM table_name WHERE field = 1 GROUP BY month

SELECT MONTH(date) AS month, count(DISTINCT ip) 
FROM table_name WHERE field = 2 GROUP BY month

如何编写一个查询来选择

SELECT MONTH(date) AS month, 
       count(DISTINCT ip) [ for field = 1], 
       count(DISTINCT ip) [ for field = 2]

最佳答案

SELECT MONTH(date) AS month, 
       count(DISTINCT case when field = 1 then ip end) as f1,
       count(DISTINCT case when field = 2 then ip end) as f2
FROM table_name 
WHERE field in (1,2)
GROUP BY month

关于sql - 选择同一列上的两个计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3830528/

相关文章:

sql - 当查询返回多行时,Oracle extractValue 失败

mysql - SQL 选择与或

mysql - SQL插入并选择多列?

php - 我需要为文本中的每个关键字进行一个 sql 查询吗?

sql - 查找字段更改时的开始和结束日期

MySQL:自连接问题 - 字段列表中的未知列

mysql - SQL如何选择唯一的一对一配对

mysql - 以最佳方式插入和删除行

sql-server - SELECT 上的火触发器

mysql - 建议合适的mysql日期函数