Mysql出生日期轉(zhuǎn)換為年齡并分組統(tǒng)計(jì)人數(shù)的方法示例
查詢數(shù)據(jù)庫
SELECT * FROM `student`
查詢結(jié)果
id | name | birthday |
---|---|---|
1 | 張三 | 1970-10-01 |
2 | 李四 | 1990-10-01 |
3 | 王五 | 2002-10-01 |
4 | 馬六 | 2003-10-01 |
轉(zhuǎn)換為年齡的查詢語句,使用函數(shù)TIMESTAMPDIFF
SELECT id, name, birthday, TIMESTAMPDIFF(YEAR,student.birthday,CURDATE()) as age FROM `student`
查詢結(jié)果
d | name | birthady | age |
---|---|---|---|
1 | 張三 | 1970-10-01 | 50 |
2 | 李四 | 1990-10-01 | 30 |
3 | 王五 | 2002-10-01 | 18 |
4 | 馬六 | 2003-10-01 | 17 |
然后按照年齡段進(jìn)行分組
SELECT GROUP_CONCAT(a.id) as ids, GROUP_CONCAT(a.name) as names, CASE WHEN a.age<18 THEN '少年' WHEN a.age>=18 AND a.age< 40 THEN '青年' WHEN a.age>=40 AND a.age< 60 THEN '中年' END as age, count(a.id) as count FROM (SELECT id, name, birthday, TIMESTAMPDIFF(YEAR,student.birthday,CURDATE()) as age FROM `student`) as a GROUP BY CASE WHEN a.age<18 THEN '少年' WHEN a.age>=18 AND a.age< 40 THEN '青年' WHEN a.age>=40 AND a.age< 60 THEN '中年' END
查詢結(jié)果
ids | names | age | count |
---|---|---|---|
1 | 張三 | 中年 | 1 |
4 | 馬六 | 少年 | 1 |
2,3 | 李四,王五 | 青年 | 2 |
tips:當(dāng)前時(shí)間是2020年
總結(jié)
到此這篇關(guān)于Mysql出生日期轉(zhuǎn)換為年齡并分組統(tǒng)計(jì)人數(shù)的文章就介紹到這了,更多相關(guān)Mysql出生日期轉(zhuǎn)年齡并分組統(tǒng)計(jì)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL查詢優(yōu)化:LIMIT 1避免全表掃描提高查詢效率
在某些情況下,如果明知道查詢結(jié)果只有一個(gè),SQL語句中使用LIMIT 1會(huì)提高查詢效率,感興趣的朋友可以了解下哈,希望對(duì)你優(yōu)化mysql查詢有所幫助2013-04-04MySQL之select in 子查詢優(yōu)化的實(shí)現(xiàn)
這篇文章主要介紹了MySQL之select in 子查詢優(yōu)化的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09在MySQL中使用Sphinx實(shí)現(xiàn)多線程搜索的方法
這篇文章主要介紹了在MySQL中使用Sphinx實(shí)現(xiàn)多線程搜索的方法,修改Sphinx的搜索引擎配置即可,需要的朋友可以參考下2015-06-06關(guān)于MYSQL中每個(gè)用戶取1條記錄的三種寫法(group by xxx)
本篇文章是對(duì)MYSQL中每個(gè)用戶取1條記錄的三種寫法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07