select a.live_id,live_nm
,count(*)
from ks_live_t1 a
left join ks_live_t2 b
on a.live_id = b.live_id
where substr(enter_time,1,13) = '2021-09-12 23'
group by a.live_id,live_nm
order by count(*) desc limit 5 ;
select a.live_id,live_nm
,count(*)
from ks_live_t1 a
left join ks_live_t2 b
on a.live_id = b.live_id
where enter_time<= '2021-09-12 23:00:00'
and leave_time>='2021-09-12 23:00:00'
group by a.live_id,live_nm
order by count(*) desc limit 5 ;
WITH ranked_scores AS (
SELECT
s.student_id,
s.name,
sc.score,
ROW_NUMBER() OVER (PARTITION BY s.grade_code ORDER BY sc.score DESC) AS rnk
FROM
students s
JOIN
scores sc ON s.student_id = sc.student_id
WHERE
s.grade_code = 'S1'
AND sc.subject = '物理'
)
SELECT
student_id,
name,
score,
rnk
FROM
ranked_scores
WHERE
rnk <= 10
ORDER BY
rnk,student_id
select
st.student_id
,st.name
,sc.score
,row_number()over(order by sc.score desc) as rnk
from
students as st
inner join
scores as sc
on st.student_id=sc.student_id
where
st.grade_code='S1'
and sc.subject='物理'
ORDER BY
rnk,st.student_id
limit
10
select * from (
select
a.student_id,
name,score
,rank()over( order by score desc) rn
from students a
left join scores b
on a.student_id=b.student_id
where subject = '物理'
and grade_code ='S1'
)a1 where rn <= 10
ORDER BY
rn,student_id
;
select * from (
select
a.student_id,
name,score
,row_number()over( order by score desc) rn
from students a
left join scores b
on a.student_id=b.student_id
where subject = '物理'
and grade_code ='S1'
)a1 where rn <= 10
ORDER BY
rn,student_id
;
select * from (
select
a.student_id,
name,score
,row_number()over( order by score desc) rn
from students a
left join scores b
on a.student_id=b.student_id
where subject = '物理'
and grade_code ='S1'
)a1 where rn <= 10
;
select
a.student_id,
name,score
from students a
left join scores b
on a.student_id=b.student_id
where subject = '物理'
and grade_code ='S1'
order by score desc limit 10
;