MySQL:获取特定日期和总体记录的 COUNT

标签 mysql sql

我有一个表格,其中包含某些日期的条目:

id |  word  | date
1  |  word1 | 2014-03-27 (today)
2  |  word2 | 2014-03-27 (today)
3  |  word1 | 2012-01-21
3  |  word1 | 2011-04-14

在上表中,word1 总共出现了 3 次,但今天只出现了一次。我想要的是创建一个查询,显示今天的计数和每个词的一般情况。我能想到的唯一方法是在查询中使用另一个 SELECT,但这很慢而且会使事情复杂化。

还有别的办法吗?

最佳答案

你可以在没有子查询的情况下做到这一点:

SELECT 
  COUNT(word) AS all_count, 
  COUNT(IF(`date`=CURDATE(), word, NULL)) AS today_count 
FROM 
  t 
WHERE 
  word='word1'

关于MySQL:获取特定日期和总体记录的 COUNT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22682629/

相关文章:

c# - await ExecuteNonQueryAsync() 仍然阻塞我的 UI

sql - 在 isNull 上连接 NULL+string

mysql - 为什么我不断收到 posts.ID 未知列,而该列存在?

sql - Oracle SQL 多表插入语句

php - 如何连接两个截然不同的mysql表,并同时按两列排序?

php - 摆脱 CodeIgniter URL 中的 Index.php

MySQL 限制事件发生在什么时候

mysql - 服务器更改后 where 子句中的未知列

SQL,iif excel单元格为空然后填充另一个excel单元格

java - 同步mysql数据库和文件夹