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

【SQL】关键字

ORDER BY

ORDER BY(排序) 语句可以按照一个或多个列的值进行升序(ASC)或降序(DESC)排序。

MAX / MIN

MAX() 函数返回一组值中的最大值。这个函数常用于数字字段,但也可以用于文本字段来找出按字典顺序最后的元素。
与 MAX() 函数相对的是 MIN() 函数,它返回一组值中的最小值。

AS

为字段起别名

COUNT

对某个限定条件下的字段计数
COUNT(字段名)

AVG

对限定条件下的某个字段计算平均值
AVG(字段名)

ROUND

限定浮点数精度

GROUP BY

GROUP BY 语句根据一个或多个列对结果集进行分组。

在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。

SELECT column1, aggregate_function(column2)
FROM table_name
WHERE condition
GROUP BY column1;

GROUP BY 后跟多个分组时,分组之间用逗号连接

HAVING

类似WHERE, 但是WHERE不可以使用搜索的聚合结果,HAVING可以使用

例如,where条件中不

select avg(a) as a from table_a where id = 1;

INNER JOIN

inner join表示内连接,用于将两个表中符合条件的数据进行匹配。在MySQL中,inner join通常会使用on子句来指定连接条件。
关键字 JOIN、INNER JOIN的含义是一样的,都表示内连接

SELECT * FROM employee INNER JOIN department ON employee.department_id = department.id;

多个表join时,每两个表需要用ON限定连接的字段。

子查询

一个查询的查询条件是另一个查询的查询结果
嵌套在其他SQL查询中的查询

WHERE IN:
查询在graders表中有记录的学生的名字
先从grades中查询所有有成绩记录的学生的id,通过id再从表students中查询学生的名字

SELECT name
FROM students
WHERE id IN (SELECT student_id FROM grades);

去重

关键字 DISTINCT
例如:从表A 表B中计算每个device提问的平均数,因为一个device可以提多个问题,所以需要对device进行去重。

select up.university, round(count(qpd.question_id) / count(DISTINCT qpd.device_id), 4) as avg_answer_cnt from  user_profile as up inner join question_practice_detail as qpd on up.device_id = qpd.device_id group by up.university order by up.university;

UNION 与 UNION ALL

union 用于把来自多个select 语句的结果组合到一个结果集合中, 结果会去重
union功能与 union 相同,结果不去重
例如

select  column,......from table1union [all]select  column,...... from table2
http://www.xdnf.cn/news/10003.html

相关文章:

  • 【笔记】suna部署之获取 Supabase API key 和 project URL
  • 【笔记】suna部署之获取 Tavily API key
  • 第42节:模型优化与部署:Web服务部署(Flask, FastAPI)
  • Arduino LCD 1602液晶显示器2(I2C总线)
  • ubuntu 22.04 编译安装nignx 报错 openssl 问题
  • 【VMware Workstation 17 Pro许可证密钥】
  • 如何站在指标体系之巅看智能数据建模产品(GAI)
  • 使用k8s服务进行端口代理
  • 3D拟合测量水杯半径
  • C++ 模板参数包展开方式
  • 微服务架构设计规范
  • 详解GPU
  • 湖北理元理律师事务所观察:债务优化如何成为民生安全网
  • APM32微控制器键盘PCB设计实战教程
  • Docker 本地化部署FireCrawl
  • 《Pytorch深度学习实践》ch1-线性模型
  • Axure RP11安装、激活、汉化
  • ubuntu24.04与ubuntu22.04比,有什么新特性?
  • 增删改常用的元素
  • 欧盟MID认证,助力全球新能源高效计量与管理
  • leetcode hot100刷题日记——26.环形链表
  • 第七届下一代数据驱动网络国际学术会议(NGDN 2025)
  • JAVA重症监护系统源码 ICU重症监护系统源码 智慧医院重症监护系统源码
  • DMBOK对比知识点对比(2)
  • 【数据结构】栈和队列(下)
  • python打卡day39@浙大疏锦行
  • vite配置一个css插件
  • MySQL字段为什么要求定义为not null ?
  • 约瑟夫问题
  • insightface==0.7.3 编译失败