SQL语句基础
例题:
每个学生选课最多的前三名
数据:
代码:
SELECT name FROM student group by name ORDER BY count(count_id) desc limit 3
group by
- 配合聚合函数使用,可以实现去重(distinct)的效果。
- 根据某个字段分组的效果如图:所以除了name字段,其他的字段都需要使用聚合函数(count、sum)等,直接select * 会报错。
order by
- 用来排序、默认为升序(asc)
- 也可以指定为降序(desc)
limit
- 多用于排序之后寻找前几位的数值、或者后几位的数值。等价于聚合函数max或者min。
- 例如:max(age) <==> order by age limit 1
having by
- 聚合函数作为限定条件时使用,此时不能使用where。
- 例如:
需要返回平均年龄大于20的数据:having by avg(age) > 20;
union
去重或者不去重、有先后输出顺序的情景使用。而不使用or
- union all:不去重
- union:去重
常见的函数使用
case函数的使用
代码片段:
日期的使用
字符串的截取
条件判断
sum(if(result = ‘right’, 1, 0))as right_question
窗口的使用
over(partition by 分组 order by 排序)
例题链接:https://leetcode-cn.com/problems/game-play-analysis-iii/
四舍五入
round(date数据,几位小数)
总结
hshuo的面试之路 文章被收录于专栏
作者目标是找到一份Java后端方向的工作 此专栏用来记录从Bilibili、书本、其他优质博客上面学习的内容 用于巩固、总结内容 主要包含Docker、Dubbo、Java基础、JUC、Maven、MySQL、Redis、SpringBoot、SpringCloud、数据结构、杂文、算法、计算机网络、操作系统、设计模式等相关内容