牛客网SQL刷题 总结

WHERE 关键字后面不能与聚合函数一起使用,解决方法:使用 `having`,参考:https://www.cnblogs.com/mafeng/p/9198514.html

SQL执行顺序

    (8) SELECT (9) DISTINCT 
    (1) FROM 
    (3)  JOIN 
    (2)    ON 
    (4) WHERE 
    (5) GROUP BY 
    (6) WITH {CUBE|ROLLUP} 
    (7) HAVING 
    (10) ORDER BY 
    (11) LIMIT

求最大值:

1,使用聚合函数。max( )

2,倒序,取第一条。

order by xxx desc
limit 1;

union和union all的区别

union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。

利用case when end来分段查看:

select device_id,gender,
case
    when age<20 then '20岁以下'
    when age<25 then '20-24岁'
    when age>=25 then '25岁及以上'
    else '其他'
end age_cut
from user_profile;

日期函数:

select day(date) as day,
    count(question_id) as question_cnt
from question_practice_detail
where year(date) = 2021 and month(date) = 08
group by date

分割字符串函数:substring_index(tr,delim,count)
tr是字符串,delim是分隔符号,count是负数表示从右边开始数。

 

posted on 2022-05-08 18:41  passionConstant  阅读(42)  评论(0编辑  收藏  举报