SQL笔记-2024/01/31

cross join
两个表的笛卡尔积
例如:
select s.name student_name,s.age student_age,s.class_id class_id,c.name class_name
from student s
cross join class c;

子查询
select s.name name,s.score score,s.class_id class_id
from student s
where s.class_id in (select distinct c.id from class c);

子查询 - exists
select s.name,s.age,s.class_id
from student s
where 1=1
and not exists (select 1 from class c where c.id = s.class_id);

组合查询
union 不保留重复行
union all 保留重复行
select s.name,s.age,s.score,s.class_id
from student s
union all
select sn.name,sn.age,sn.score,sn.class_id
from student_new sn;

开窗函数 - sum over
select s.id id,s.name name,s.age age,s.score score,s.class_id class_id,AVG(score) over (partition by class_id) as class_avg_score
from student s;

开窗函数 - sum over order by
select s.id id,s.name name,s.age age,s.score score,s.class_id class_id,SUM(score) over (partition by class_id order by score asc) as class_sum_score
from student s;

开窗函数 - rank
select s.id id,s.name name,s.age age,s.score score,s.class_id class_id,RANK() over (partition by class_id order by score desc) as ranking
from student s;

查询进阶 - 开窗函数 - row_number
select s.id id,s.name name,s.age age,s.score score,s.class_id class_id,ROW_NUMBER() over (partition by class_id order by score desc) as row_number
from student s;

开窗函数 - lag / lead
select s.id id,s.name name,s.age age,s.score score,s.class_id class_id,
LAG(name,1,null) over (partition by class_id order by score desc) as prev_name,
LEAD(name,1,null) over (partition by class_id order by score desc) as next_name
from student s;

相关推荐

  1. <span style='color:red;'>20240130</span>

    20240130

    2024-02-10 01:12:02      52 阅读
  2. 20240311

    2024-02-10 01:12:02       38 阅读
  3. 20240311按键输入实验

    2024-02-10 01:12:02       41 阅读
  4. SQL温习笔记SQL Server】

    2024-02-10 01:12:02       35 阅读
  5. clickhouse sql优化笔记

    2024-02-10 01:12:02       59 阅读
  6. SQL注入学习笔记

    2024-02-10 01:12:02       48 阅读
  7. SQL笔记 -- 查询优化

    2024-02-10 01:12:02       48 阅读
  8. SQL笔记 -- 锁

    2024-02-10 01:12:02       43 阅读
  9. SQL笔记 -- 黑马程序员

    2024-02-10 01:12:02       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-10 01:12:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-10 01:12:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-10 01:12:02       82 阅读
  4. Python语言-面向对象

    2024-02-10 01:12:02       91 阅读

热门阅读

  1. 存储服务器主要运用在哪些方面

    2024-02-10 01:12:02       53 阅读
  2. 20240208作业

    2024-02-10 01:12:02       41 阅读
  3. Lua序列化

    2024-02-10 01:12:02       49 阅读
  4. 程序设计语言之机器语言、汇编语言、高级语言

    2024-02-10 01:12:02       49 阅读
  5. C语言中的typedef关键字:为类型定义新名称

    2024-02-10 01:12:02       46 阅读
  6. 【SQL】力扣1445. 苹果和桔子

    2024-02-10 01:12:02       54 阅读
  7. 使用Collections.singletonList()遇到的问题

    2024-02-10 01:12:02       48 阅读
  8. c#观察者设计模式

    2024-02-10 01:12:02       55 阅读