真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql怎么算平均年齡 mysql 年齡

求大神們解答 如何在Mysql 中 用出生日期來求幾個人的平均年齡

select avg(A.年齡)

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,西區(qū)企業(yè)網(wǎng)站建設,西區(qū)品牌網(wǎng)站建設,網(wǎng)站定制,西區(qū)網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,西區(qū)網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

from

(select name as 姓名,(year(getdate())-year(出生日期)) as 年齡 from [表名] ) A

MySQL根據(jù)出生日期計算年齡的五種方法比較

以前使用mysql不是很多,對mysql的函數(shù)也不是很熟悉,遇到這個問題第一時間百度搜索,搜索到這兩種方法,這兩種方法是排在百度第一條的博客。

方法一,作者也說出了缺陷,就是當日期為未來日期時結(jié)果為0,而不是負數(shù);這里使用了5個函數(shù)和兩個運算符。

方法二,解決了方法一為負數(shù)的問題,但看起來更復雜;這里使用了6個函數(shù)和3個運算符。

看了這篇貼子后,我就暈了,怎么會這么復雜,以前用Sql Server很簡單就可以了。我堅信一定有簡單高效的方法。很快就找到了根據(jù)以上方法改良后的方法。

改良后的方法一,少了一個函數(shù)和一個運算符,當日期為未來日期時計算結(jié)果還是為0;

改良后的方法二,還是6個函數(shù)和3個運算符,看起來簡單些;取日期的右邊五位,當日期格式為‘2013-01-01’時取到的是‘01-01’,沒有問題;當日期格式為‘2013-1-1’縮寫格式時,取右邊的五位取出的是‘3-1-1’,會導致出錯。

然后自己根據(jù)MYSQL的幫助文檔中的日期函數(shù)想到了第三種方法:

取生日和當前日期之前的天數(shù)除以一年的實際天數(shù)(365天5小時48分46秒),然后取整。這樣只用了三個函數(shù)和一個運算符就搞定了。

然后,很快在國外網(wǎng)站找到了第四種方法:

這種方法只用了兩個函數(shù)就搞定了,應該是最佳方法了。

測試了一下以上四種方法,假如當前日期為'2017-1-13',當生日為‘2013-1-14’時,還差一天就要過生日了,離4歲只 差一天了,結(jié)果還是3歲,感覺不是很合理;把方法三改造一下,四舍五入得到方法五:

這樣計算出的年齡離實際的周歲最接近了,但可能方法四是最符合年齡定義的了。

26《MySQL 教程》聚合函數(shù)(聚合函數(shù) MIN、MAX)

MySQL 的常見的聚合函數(shù)有 AVG、COUNT、SUM、MIN、MAX,上一小節(jié)介紹了 AVG、COUNT、SUM 三種聚合函數(shù),本小節(jié)介紹如何使用 MIN、MAX 兩種聚合函數(shù),另外再介紹一下如何在 GROUP BY 中使用聚合函數(shù)。

以 teacher 表為例,先查所有 teacher 信息:

查詢結(jié)果如下圖:

可以使用 MIN() 函數(shù)對結(jié)果集取年齡最小值的數(shù)據(jù):

執(zhí)行結(jié)果如下圖:

以 student 表為例,先查看所有 student 信息:

查詢結(jié)果如下圖:

可以使用 MAX() 函數(shù)對結(jié)果集取年齡最大值的數(shù)據(jù):

執(zhí)行結(jié)果如下圖:

以 student_course、course、student 表內(nèi)連接查詢?yōu)槔?/p>

查詢結(jié)果如下圖:

使用 AVG 函數(shù)取分組數(shù)據(jù)平均年齡:

執(zhí)行結(jié)果如下圖 :

可以使用 HAVING 對上述結(jié)果篩選,例如選出選課學生平均年齡大于 20 的課程數(shù)據(jù):

執(zhí)行結(jié)果如下圖:

本小節(jié)介紹了如何使用 MIN、MAX 兩種聚合函數(shù)對查詢結(jié)果集進行篩選,還介紹了如何在 GROUP BY中分組使用聚合函數(shù),并且使用 HAVING 后面的條件對分組數(shù)據(jù)進行篩選,需要注意的是聚合函數(shù)產(chǎn)生的數(shù)據(jù)列最好重命名,這是因為后端程序語言在處理這些數(shù)據(jù)時需要規(guī)范的字段名,例如:

查詢結(jié)果如下圖:

mysql表student中求出每間宿舍平均年齡中的最大值,獲取年齡大于這個最大值的學生信息

假設表student有如下字段:id,name,age,dormitory(宿舍號),語句可以如下寫

select?*?from?student?where?age(

select?max(t.age)?from?(

select?avg(age)?age?from?student?group?by?dormitory

)?t

)

這個語句是我隨手寫的,沒經(jīng)過數(shù)據(jù)庫驗證,你自己先看一下,需要修改的地方自己稍加改動就行,大致差不多這樣的


分享名稱:mysql怎么算平均年齡 mysql 年齡
網(wǎng)頁路徑:http://weahome.cn/article/hhheii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部