tamako tamako
首页
  • Mysql
  • Redis
  • JVM
  • 个人开源项目 (opens new window)
  • 开源官网 (opens new window)
  • B站主页 (opens new window)
  • 摄影
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

tamako | 玉子

胜人者有力,自胜者强
首页
  • Mysql
  • Redis
  • JVM
  • 个人开源项目 (opens new window)
  • 开源官网 (opens new window)
  • B站主页 (opens new window)
  • 摄影
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • java实现两个线程交替打印0~100
  • 简单实现 Integer.parseInt(String str) 方法
  • SQL
    • 连接
      • 左连接
      • 右连接
      • 等值连接
    • 分组
    • 排序
    • 聚合函数
  • 面试手撕
pruedream
2024-04-04
目录

SQL

# 连接

# 左连接

# 右连接

# 等值连接

# 分组

分组的需求体现在:需要按照某一个字段将数据进行分组以方便获取到一些数据,比如说使用count()算数量,还可以更进一步,比如使用获取到的数据过滤掉一些组,打个比方统开课数量>5的老师的name.

select teacher_id , count(distinct subject_id) as cnt
from Teacher 
group by teacher_id
HAVING cnt >5

按照老师分组以使用count获取老师的开课数量,再根据开课数量过滤掉<=5的老师,也就是过滤掉了<=5的组
1
2
3
4
5
6

GROUP BY与MIN (opens new window),MAX (opens new window),AVG (opens new window),SUM (opens new window)或COUNT (opens new window)等聚合函数结合使用,以计算为每个分组提供信息的度量。 注意计算的是每个分组的

如果要在分组之前过滤行,请添加WHERE子句。过滤完行之后,需要对每个分组自己进行过滤使用HAVING

也就是说 where是用于分组前过滤行的,HAVING是用于分组后,按条件过滤掉某些分组

group by 所使用的条件字段必须在select 查询的字段中存在

group by 后接上order by 是对组的排序(不是对组内的数据,而是对所有的组),所有的组会按照order by的条件排好序

SELECT 
    e.department_id,
    department_name,
    COUNT(employee_id) headcount
FROM
    employees e
        INNER JOIN
    departments d ON d.department_id = e.department_id
GROUP BY e.department_id
ORDER BY headcount DESC;
//更多请阅读:https://www.yiibai.com/sql/sql-group-by.html


1
2
3
4
5
6
7
8
9
10
11
12
13

# 排序

order by 字段 升序 加desc是降序

# 聚合函数

count(*)COUNT(*)函数返回由SELECT (opens new window)语句返回的结果集中的行数。COUNT(*)函数计算包含NULL和非NULL值的行,即:所有行。

COUNT(expression)返回不包含NULL值的行数。

MySQL COUNT(DISTINCT expression)返回不包含NULL值的唯一行数。

上次更新: 2024/08/09, 16:07:34
简单实现 Integer.parseInt(String str) 方法

← 简单实现 Integer.parseInt(String str) 方法

最近更新
01
骄惰怯
08-10
02
谦虚谦虚谦虚
08-09
03
长期主义
07-17
更多文章>
Theme by Vdoing | Copyright © 2019-2024 tamako | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式