1、精确到某一天

SELECT
    NAME,
    COUNT(NAME) AS VALUE
FROM
    (
        SELECT
            CASE
        WHEN age < 20 THEN  '19岁及以下'
        WHEN age <= 29 THEN '20-29岁'
        WHEN age <= 39 THEN '30-39岁'
        WHEN age <= 49 THEN '40-49岁'
        ELSE    '50岁及以上'
        END AS NAME
        FROM
            (
                select
                    TIMESTAMPDIFF(YEAR,p.birthday,CURDATE()) AS age
                from
                    ipms_person p WHERE p.birthday is not NULL
            ) t
    )t GROUP BY NAME

 

2、按年份计算

SELECT
    NAME,
    COUNT(NAME) AS VALUE
FROM
    (
        SELECT
            CASE
        WHEN age < 20 THEN  '19岁及以下'
        WHEN age <= 29 THEN '20-29岁'
        WHEN age <= 39 THEN '30-39岁'
        WHEN age <= 49 THEN '40-49岁'
        ELSE    '50岁及以上'
        END AS NAME
        FROM
            (
                select
                    DATE_FORMAT(NOW(),'%Y') -substr(p.birthday,1,4) AS age
                from
                    ipms_person p WHERE p.birthday is not NULL
            ) t
    )t GROUP BY NAME

 

相关文章:

  • 2021-11-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-03-09
  • 2022-12-23
  • 2021-11-16
  • 2022-12-23
猜你喜欢
  • 2021-11-17
  • 2022-12-23
  • 2022-12-23
  • 2021-11-30
  • 2021-06-19
  • 2022-12-23
相关资源
相似解决方案