【问题标题】:How to achieve this COUNT(date > NOW()) AS count?如何实现这个 COUNT(date > NOW()) AS 计数?
【发布时间】:2026-01-05 16:00:01
【问题描述】:

我有一张包含现场巡演日期列表的表格,我想每年对它们进行 GROUP,但还要创建一个包含今年剩余日期的新列:

  year   |  count /*of remaining dates*/
  --------------------
  2014   |  12
  2013   |  0
  2012   |  0
  2010   |  0

我试过了,但不起作用:

SELECT YEAR(`date`) AS year, COUNT(`date` > NOW()) AS count
FROM live
GROUP BY YEAR(`date`) 
ORDER BY YEAR(`date`) DESC

【问题讨论】:

  • 使用SUM() 而不是COUNT()date > NOW() 将返回 1 或 0。

标签: mysql date count


【解决方案1】:

试试这个方法

SELECT YEAR(`date`) AS year, SUM(`date` > CURDATE()) AS count
  FROM live
GROUP BY YEAR(`date`) DESC

示例输出:

|年份 |计数 | |--------|--------| | 2013 | 2 | | 2012 | 0 |

这里是SQLFiddle演示

【讨论】:

  • 这完美地完成了工作!感谢您的帮助