当前位置:网站首页>Limited query of common SQL operations

Limited query of common SQL operations

2022-07-05 01:46:00 stitchshaw

topic 1

https://www.nowcoder.com/practice/fbe36305c6dd4954a05cc2f2f12e4f4a?tpId=240&tags=&title=&difficulty=0&judgeStatus=0&rp=0

select uid, nick_name, register_time
from user_info
order by register_time asc
limit 3
select uid, nick_name, register_time
from (
    select uid, nick_name,register_time,
           ROW_NUMBER() over(order by register_time) as ranks #  Column name to rename . Column name cannot be row_number, Otherwise, the report will be wrong 
    from user_info
) as t
where ranks <= 3;
#limit 3;
with t as(
    select uid, nick_name,register_time,
           ROW_NUMBER() over(order by register_time) as ranks #  Column name to rename . Column name cannot be row_number, Otherwise, the report will be wrong 
    from user_info
)

select uid, nick_name, register_time
from t
where ranks <= 3;
# limit 3;

topic 2

https://www.nowcoder.com/practice/718d36d2667b48faa2168b6c1521816a?tpId=240&tags=&title=&difficulty=0&judgeStatus=0&rp=0
Mr. Cheng temporary table t, Indicates that the conditions are met ( Job search algorithm 、 Answer sheet is algorithm 、 Complete the answer sheet on the day of registration ) People's information .
The final classification , Find out the maximum score of each person and then sort .

with t as(
    select t1.uid, level, register_time, score
    from user_info t1 join examination_info t2 join exam_record t3 on t1.uid = t3.uid and t2.exam_id = t3.exam_id
    where job=" Algorithm " and tag = ' Algorithm ' and date(register_time) = date(submit_time)
)

select uid, level, register_time, max(score) as max_score
from t
group by uid
order by max_score DESC
limit 6, 3

limit usage :【select * from tableName limit i,n 】;
i : Is the index value of the query result ( The default from the 0 Start );n : Number returned for query results

Or write directly :

select t1.uid, level, register_time, max(score) as max_score
# from user_info t1 join examination_info t2 join exam_record t3 on t1.uid = t3.uid and t3.exam_id = t2.exam_id
from user_info t1 join exam_record using(uid) join examination_info using(exam_id)
where 
    job = " Algorithm "       # job like ' Algorithm ' 
    and tag = ' Algorithm '       # tag like ' Algorithm '
    and date(register_time) = date(submit_time) #  use date function , That is, take the date 
# and DATE_FORMAT(register_time, '%Y%m%d')=DATE_FORMAT(submit_time, '%Y%m%d')
group by uid
order by max_score desc
limit 6, 3  #  Take the first place 7~9 strip 
原网站

版权声明
本文为[stitchshaw]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202141013504379.html