mysql - 选择多个计数

标签 mysql

我的选择:

   SELECT DISTINCT

   (SELECT COUNT(*) 
   FROM t_table 
   WHERE year(date) BETWEEN '2013' AND '2013' AND month(date) BETWEEN '1' AND '12' AND date!=cad_em) as total1,

   (SELECT COUNT(*)
   FROM t_table
   WHERE year(date) BETWEEN '2013' AND '2013' AND month(date) BETWEEN '1' AND '12' AND date=cad_em ) as total2

   FROM t_table
   GROUP BY date

返回:

total1 | total2
1        4    

但是我想返回日期 示例:

date        | total1 | total2
2013-10     7          8
2013-11     1          4
2013-12     2          5

我怎样才能对我的示例显示相同的响应?

谢谢!!

最佳答案

您可以使用条件求和来简化事情。另外,我不确定你的 where 条件是否有意义,除非这些是参数 -

select
date,
sum( if(date = cad_em, 0, 1) ) as total1,
sum( if(date = cad_em, 1, 0) ) as total2
from
t_table
where year(date) = 2013 and month(date) between 1 and 12
group by date

关于mysql - 选择多个计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19826527/

相关文章:

mysql - 在多线程应用程序中使用 libmysqlclient

java - 使用 JComboBox 从数据库中检索数据清除 JTable

java - Java中按日期字段对对象列表进行排序

mysql - 选择一行而不是另一行,但不基于 where 子句

php - 将表情符号从 php Web 应用程序传递到 Oracle 数据库和 mysql

mysql - 在 MySQL 中按一张表排序

mysql - sql选择前10条记录

mysql - SQL 子查询不起作用

java - JPA - 通过外键获取数据

mysql - 更新除最新重复行之外的所有重复行