第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

試著寫一下我的語句和理解,比老師的更加有可讀性,好理解

老師給出的答案可讀性實在太差了,不直觀,不符合正常邏輯,老師又不作解釋。下面是我的語句:


SELECT c.user_name, c.timestr, c.kills FROM?

(SELECT a.id, a.user_name, b.timestr, b.kills FROM user1 a INNER JOIN user_kills b on a.id = b.user_id) c?

INNER JOIN user_kills d ON c.id = d.user_id AND c.kills <= d.kills

GROUP BY c.user_name, c.timestr

HAVING COUNT(*) <= 2

ORDER BY c.user_name, c.kills DESC;




正在回答

3 回答

SELECT a.user_name, b.timestr, b.kills FROM user1 ainner join

?( select b.user_id, b.kills, max(b.timestr) as timestr from user_kills b?

? ?GROUP BY b.user_id, b.kills

?) b on a.id = b.user_id

INNER JOIN?

( select b.user_id, b.kills, max(b.timestr) as timestrfrom user_kills b?

? ?GROUP BY b.user_id, b.kills

) d?

ON a.id = d.user_id AND b.kills <= d.kills

GROUP BY b.kills?

HAVING COUNT(*) <= 2

ORDER BY a.user_name, b.kills DESC;

個人的一個修改,主要思路就是表連接之前先把重復(fù)的過濾(數(shù)據(jù)分組然后取最大的時間)


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕祈

如有兩條殺敵數(shù)記錄都是10,那么豬八戒最后只會查詢到殺敵數(shù)12的記錄,10記錄的count肯定大于2然后被過濾掉,所以我的思路是在連接表前過濾掉殺敵數(shù)相同的數(shù)據(jù),取殺敵數(shù)相同的記錄日期最新的時間
2022-11-30 回復(fù) 有任何疑惑可以回復(fù)我~
#2

慕祈

有個錯誤修改一下,GROUP BY b.kills 應(yīng)該改為GROUP BY a.id, b.kills
2022-11-30 回復(fù) 有任何疑惑可以回復(fù)我~

可以把子查詢 c?去掉 ,改成兩次 inner join。

1 回復(fù) 有任何疑惑可以回復(fù)我~

1.括號中的子查詢連接兩張表,很好理解。

2.子查詢得到的集合再去連接user_kills表,條件c.id = d.user_id,很好理解。

條件c.kills <= d.kills的作用,使得殺怪最多的天數(shù)只出現(xiàn)一次,第二多的天數(shù)出現(xiàn)兩次,如此類推。

重復(fù)出現(xiàn)的次數(shù),其實就等于殺怪?jǐn)?shù)的排名。放兩個圖,不懂的人結(jié)合圖細(xì)細(xì)品一下。

http://img1.sycdn.imooc.com//5e17bf7700015b0304280396.jpg

http://img1.sycdn.imooc.com//5e17bf770001b53d03130494.jpg

3.GROUP BY c.user_name, c.timestr分組。GROUP BY有去除重復(fù)的作用,此時的表:

http://img1.sycdn.imooc.com//5e17bf900001923f03130228.jpg

4.HAVING COUNT(*) <= 2,把重復(fù)出現(xiàn)次數(shù)小于等于2的保留,也就是殺怪最多的兩天。

有人可能會卡在這一步,覺得不好理解??梢越Y(jié)合第二步來看,雖然分組后看不到重復(fù),但是通過函數(shù)可以計算出來。

再放個圖(沒加HAVING COUNT(*) <= 2的時候,而且增加count列,方便理解),還不懂就沒救了。

http://img1.sycdn.imooc.com//5e17bfb100019e2504010232.jpg

5.ORDER BY c.user_name, c.kills DESC,排序就不用解釋了吧。

5 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕祈

那如果有兩日的殺敵數(shù)相同,這個count的計數(shù)就不成立了
2022-11-30 回復(fù) 有任何疑惑可以回復(fù)我~
#2

慕祈

如有兩條殺敵數(shù)記錄都是10,那么豬八戒最后只會查詢到殺敵數(shù)12的記錄,10記錄的count肯定大于2然后被過濾掉
2022-11-30 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

試著寫一下我的語句和理解,比老師的更加有可讀性,好理解

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號