那位大神給講解一下語句的執(zhí)行流程
select a.user_name , b.timestr , b.kills
from user1 a
join user_kills b on a.id = b.user_id
join user_kills c on c.user_id = b.user_id
group by a.user_name , b.timestr , b.kills
having b.kills = MAX(c.kills)
select a.user_name , b.timestr , b.kills
from user1 a
join user_kills b on a.id = b.user_id
join user_kills c on c.user_id = b.user_id
group by a.user_name , b.timestr , b.kills
having b.kills = MAX(c.kills)
2017-05-29
舉報(bào)
2017-05-31
(user1 a
join user_kills b on a.id = b.user_id
join user_kills c on c.user_id = b.user_id
group by a.user_name , b.timestr , b.kills
having b.kills = MAX(c.kills))相當(dāng)于虛擬了一個(gè)表,
然后(select a.user_name , b.timestr , b.kills?from?)是從這個(gè)虛擬表中挑選的。
對(duì)于上面的虛擬表 先用兩個(gè)join把三個(gè)表關(guān)聯(lián)起來,group是對(duì)這個(gè)虛擬表的數(shù)據(jù)的排序,having 字句是減小范圍用的。
2018-03-14
哪位大神知道MAX(c.kills)的值是怎么來的嗎?
2017-12-17
第一步 三張表join,?
第二步: group分組
第三步: hiving對(duì)分組后的結(jié)果進(jìn)行篩選