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;

相关推荐
fensnote1 小时前
QTableView使用QSortFilterProxyModel后行号错乱
数据库
huapiaoy4 小时前
Redis的一些通用指令
数据库·redis·缓存
Lojarro4 小时前
后端-navicat查找语句(单表与多表)
数据库·mysql
月泪同学4 小时前
数据库面试题整理
数据库·mysql·面试
程序员学习随笔6 小时前
PostgreSQL技术内幕11:PostgreSQL事务原理解析-MVCC
数据库·postgresql
大数据深度洞察7 小时前
Hive企业级调优[5]—— HQL语法优化之数据倾斜
大数据·数据仓库·hive·sql
Y.G Bingo7 小时前
Text2SQL论文笔记 A Survey on Employing Large Language Models for Text-to-SQL Tasks
论文阅读·sql·语言模型
莫叫石榴姐7 小时前
一份热乎的阿里25届数据分析面试题
数据库·数据仓库·sql·算法·数据挖掘·数据分析
cong*7 小时前
数据库提权【笔记总结】
数据库·笔记·adb
没明白白8 小时前
Redis 缓存雪崩、缓存穿透、缓存击穿详解
数据库·redis·缓存