gpt4 book ai didi

mysql select datetime 查询查找 1 岁、2 岁等的 id

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

我想要最近 1 年创建的 ID,或者年份 > 1 但年份 < 2,依此类推。假设这是表格:

+----+--------------------------+---------------------+
| id | data | cur_timestamp |
+----+--------------------------+---------------------+
| 1 | The time of creation is: | 2014-02-01 20:37:22 |
| 2 | The time of creation is: | 2015-01-01 20:37:22 |
| 3 | The time of creation is: | 2015-02-01 20:37:22 |
| 4 | The time of creation is: | 2015-12-01 20:37:22 |
| 5 | The time of creation is: | 2016-02-01 20:37:22 |
| 6 | The time of creation is: | 2016-04-01 20:37:22 |
+----+--------------------------+---------------------+

我想要一张这样的 table :

+-----------------------+-------+
| date range | count |
+-----------------------+-------+
| last 1 year | 3 |
| > 1 year & < 2 years | 2 |
| > 2 years | 1 |
+-----------------------+-------+

第一列中的任何内容都可以。但我想要上面指定的计数。我尝试过各种事情。

select count(*) from ids where cur_timestamp >= date_sub(now(), interval 1 year);

这将给我过去一年的 ID 计数。同样,我可以扩展它以获得其他值。但是有什么方法可以在一个查询中获取所有值吗?

最佳答案

这称为条件聚合。您必须添加更多条件才能获得所需的年限。

select 
count(case when cur_timestamp >= date_sub(now(), interval 1 year) then 1 end) last_1_yr,
count(case when cur_timestamp > date_sub(now(), interval 1 year) and cur_timestamp <= date_sub(now(), interval 2 year) then 1 end) bw_1_2_yrs,
count(case when cur_timestamp > date_sub(now(), interval 2 year) then 1 end) gt_2_yrs
from ids

关于mysql select datetime 查询查找 1 岁、2 岁等的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40487302/

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