日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 平均值 排序_MySQL按平均两个平均值排序

發(fā)布時間:2023/12/1 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 平均值 排序_MySQL按平均两个平均值排序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我正在競賽網(wǎng)站上工作,有兩種類型的用戶,普通網(wǎng)站成員和評委.每個人都可以使用拖放工具按照他們選擇的順序?qū)μ囟ū荣愔械臈l目進(jìn)行排序.完成后,相關(guān)的條目ID將附加一個排名值,然后可用于確定比賽中哪個條目獲得最高的平均分?jǐn)?shù).獲勝者實(shí)際上將通過平均每組的平均值來確定.

我希望做的是最終得到一個表格,顯示特定比賽中的每個條目,標(biāo)題,然后顯示3個值,該條目的avg_normal,該條目的avg_judge,然后將這兩個值相加并除以2 ,所以avg_normal和avg_judge每個帳戶占avg_all的50%.最后,通過avg_all對表進(jìn)行排序.

avg_all =((avg_normal avg_judge)/ 2)

他們按順序訂購entry_ids 1,2,3,4,5.排名值從零開始,因此:

entry_id, entry_ranking, author_id

1, 0, 1

2, 1, 1

3, 2, 1

4, 3, 1

5, 4, 1

我希望能夠確定1-100的平均值,所以排名為0 = 100分,1 = 90,2 = 80,3 = 70,以及4以上= 5分

每個用戶都附加到另一個表中的組,因此他們是普通用戶或法官

我希望能夠編寫一個查找的查詢

1.)普通用戶投票得分

2.)JUDGE用戶平均投票得分

3.)NORMAL和&的平均值. JUDGE SCORE.

所以普通用戶平均值= 93.3333,法官平均值= 70,總平均值= 81.66665

感謝下面的答案,兩個查詢都像冠軍一樣.

解決方法:

請注意以下事項(xiàng):

>我假設(shè)成員中有一個字段user_type存儲’NORMAL’或’JUDGE’

>我已經(jīng)刪除了titles.title的數(shù)據(jù)和組的連接,因?yàn)槲铱床怀鏊鼈兣c你的平均值有什么關(guān)系.

.

SELECT

t.title,

AVG(CASE WHEN user_type = 'NORMAL' THEN IF (r.ranking_value = '0', 100, 0) + IF (r.ranking_value = '1', 90, 0) + IF (r.ranking_value = '2', 80, 0) + IF (r.ranking_value = '3', 70, 0) + IF (r.ranking_value = '4', 5, 0) END) AS avg_normal,

AVG(CASE WHEN user_type = 'JUDGE' THEN IF (r.ranking_value = '0', 100, 0) + IF (r.ranking_value = '1', 90, 0) + IF (r.ranking_value = '2', 80, 0) + IF (r.ranking_value = '3', 70, 0) + IF (r.ranking_value = '4', 5, 0) END) AS avg_judge,

(AVG(CASE WHEN user_type = 'NORMAL' THEN IF (r.ranking_value = '0', 100, 0) + IF (r.ranking_value = '1', 90, 0) + IF (r.ranking_value = '2', 80, 0) + IF (r.ranking_value = '3', 70, 0) + IF (r.ranking_value = '4', 5, 0) END) +

AVG(CASE WHEN user_type = 'JUDGE' THEN IF (r.ranking_value = '0', 100, 0) + IF (r.ranking_value = '1', 90, 0) + IF (r.ranking_value = '2', 80, 0) + IF (r.ranking_value = '3', 70, 0) + IF (r.ranking_value = '4', 5, 0) END)) / 2 AS avg_all

FROM rankings r

LEFT JOIN titles t

ON r.entry_id = t.entry_id

LEFT JOIN members m

ON t.author_id = m.member_id

WHERE r.contest_id IN ('CONTEST ID NUMBER')

GROUP BY

t.title

ORDER BY

avg_all;

標(biāo)簽:mysql,sorting,sql,average

來源: https://codeday.me/bug/20190701/1343576.html

總結(jié)

以上是生活随笔為你收集整理的mysql 平均值 排序_MySQL按平均两个平均值排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。