当前位置: 首页 > news >正文

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;

http://www.lryc.cn/news/297019.html

相关文章:

  • C#系列-简介(1)
  • LoRA:语言模型微调的计算资源优化策略
  • pycharm deployment 灰色 一直无法点击
  • 解决“使用Edge浏览器每次鼠标点击会出现一个黑色边框”的问题
  • IEC61499 学习记录
  • 斗地主登录界面(JAVA图形化界面)设置
  • RibbonOpenFeign源码(待完善)
  • Python DNS操作详解
  • Redis篇之分布式锁
  • 制作一个简单的HTML个人网页我的名字叫小明爱好打篮球,喜欢的歌手周杰伦我的技能java c++ python 主题配色蓝白
  • 华为视频监控接入到视频监控平台 (华为网路监控摄像机IPC和华为视频节点设备VCN)
  • 树与二叉树---数据结构
  • C++ .h文件类的调用
  • C语言:分支与循环
  • 【linux系统体验】-archlinux折腾日记
  • 常用数字处理格式校验
  • 2024.1.26力扣每日一题——边权重均等查询
  • C语言操作符超详细总结
  • 【Java八股面试系列】JVM-内存区域
  • 计划任务功能优化,应用商店上架软件超过100款,1Panel开源面板v1.9.6发布
  • 蓝桥杯(Web大学组)2023省赛真题3:收集帛书碎片
  • 使用QT编写一个简单QQ登录界面
  • TryHackMe-Net Sec Challenge练习
  • 面试 JavaScript 框架八股文十问十答第五期
  • [职场] 如何通过运营面试_1 #笔记#媒体#经验分享
  • CTFshow web(命令执行 41-44)
  • XML介绍和基本语法
  • Android:Android Studio安装及环境配置
  • 力扣刷题之旅:进阶篇(三)
  • 代码随想录 Leetcode55. 跳跃游戏