gpt4 book ai didi

mysql - 根据事件时间长度显示表中的记录数?

转载 作者:行者123 更新时间:2023-11-29 11:56:12 25 4
gpt4 key购买 nike

如果我有一个包含用户信息的表,其中包含日期时间列,其注册日期(即 2015-01-01)称为“已添加”,我如何显示以下期间注册/事件的所有记录的计数:

1) 不到一年2) 1到2年之间3)2至3年之间4) ...依此类推,只要“添加”的年份过去了。

我已经尝试过这个:

SELECT Count(*) AS count, YEAR(CURDATE()) - YEAR(added) AS years
FROM users
GROUP BY YEAR(added)

但是该计算已关闭,因为它只是按年份对结果进行分组,而不是按今天的实际日期进行分组。例如,2014 年 12 月注册的人在 2015 年 1 月仍然会显示为计数“1”...尽管实际上,应该考虑实际注册日期,而不仅仅是年份。

建议?

最佳答案

试试这个:

SELECT Count(*) AS count, 
SUM(IF (DATE_ADD(added, INTERVAL 1 YEAR) > NOW(), 1, 0)) AS num_1year,
SUM(IF (DATE_ADD(added, INTERVAL 1 YEAR) < NOW() AND DATE_ADD(added, INTERVAL 2 YEAR) > NOW(), 1, 0)) AS num_2year,
SUM(IF (DATE_ADD(added, INTERVAL 2 YEAR) < NOW() AND DATE_ADD(added, INTERVAL 3 YEAR) > NOW(), 1, 0)) AS num_3year
FROM users

关于mysql - 根据事件时间长度显示表中的记录数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33165678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com