SQL分组查询
1.关系范式详解
2.SQL分组查询
1 前言
SQL中分组查询分为 GROUP BY 分组和 COMPUTE BY 分组两种。
笔者以案例的形式分别讲解两种查询方式。在SQL Server数据库上建立staff表,以eid为主键,表数据如下:
2 GROUP BY 分组
select whid,count(*) as count,avg(salary) as avg
from staff
where salary>1250
group by whid
having count(*)>=2
order by whid desc
说明:
- GROUP BY 中的分组依据和SELECT 中的分组标识是相对应的;
- HAVING 子句限定分组条件,总是跟在GROUP BY 子句之后,不可以单独使用。
3 COMPUTE BY分组
select *
from staff
where salary>1250
order by whid desc
compute count(whid),avg(salary) by whid
说明:
- COMPUTE ... BY...必须结合 ORDER BY 排序语句;
- 一般 BY 子句指定的列必须和 ORDER BY 子句指定的列顺序相同,但BY子句的列数可以少于 ORDER BY 子句的列数。
若去掉 BY 子句则是对全局的汇总,如下:
select *
from staff
where salary>1250
order by whid desc
compute count(whid),avg(salary)
注意:MySQL中没有 COMPUTE 语句。
声明:本文转自SQL分组查询
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)