sql - mysql select datetime query to find ids which are 1 year old, 2 year old and so on -


i want ids created in last 1 year, or year > 1 year < 2, , on. suppose if table:

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

i table this:

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

any content in first column fine. have count specified above. have tried various things.

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

this give me count of ids in last 1 year. can extend other values. there way can values in 1 single query?

this called conditional aggregation. have add more conditions many years needed.

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

Comments

Popular posts from this blog

php - How to add and update images or image url in Volusion using Volusion API -

javascript - jQuery UI Splitter/Resizable for unlimited amount of columns -

javascript - IE9 error '$'is not defined -