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、数据结构、杂文、算法、计算机网络、操作系统、设计模式等相关内容

全部评论

相关推荐

zhiyog:哈哈哈,其实是津巴布韦币
点赞 评论 收藏
分享
02-23 00:10
湖南大学 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务