SQL基础第十二章控制总线级别

本文介绍了如何使用SQL的GROUP BY子句对数据进行分组,并利用聚合函数进行数据汇总。通过具体示例展示了如何根据manager_id列出每位管理者下属员工的数量及信用限额范围,同时还演示了如何基于多个列进行分组并排除特定条件。最后,文章还探讨了如何筛选出满足特定汇总条件的记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<html>
<head>
<title>第十二章控制总线级别</title>

</head>
<body bgcolor=lightgray color=green size=4>
<pre>
<p align=center ><b>第十二章 控制总线级别</b></p>
上一章将表中所有的值总结,结果是一个值,本章将表的行分成组分别总结每个组,这样每个组都有一个总结。可以将表的行划分为不同的组。select语句的group by可以做到。然后,列函数总结每个组。
                  第二节group by子句
任务:使用每个manager_id列出每个人管理的雇员的数员。可以通过显示最大值,最小值来列出雇员信用限制的范围,忽略雇员202;
select manager_id,
count(employee_id) as number_of_employees,
min(credit_limit) as minimum_credit,
max(credit_limit) as maximum_credit
from 1_employees
where not (employee_id=202)
group by manager_id
order by manager_id;

                 第三节 由两个或更多列形成的组
select manager_id ,
dept_code,
count(employ_id) as number_of_employees
min(credit_limit) as minimum_credit,
max(credit_limit) as maximum_credit
from 1_employees
where not(emploee_id=202)
group by manager_id,
dept_code
order by manager_id,
dept_code;

 

                  第五节
在同一个select语句中,已经总结的数据不能与没有总结的数据设在一起。 select语句不能既列出已经总结的数据,又列出详细数据。
总结的意思就是该行使用了列函数。
当已经的列和详细的列出现在相同的select语句时会出错。
解决:向group by子句上添加更多的列。添加所有包含详细数据的列。
     将查询分成两个单独的select语句。
消除某些已经存在的数据:
在总结数据以后,可以删除结果表中的某些行。
任务:列出1_lunche_items列表中所有订单多于10次或者更多次的食品供应商。
swelect supplier_id,
product_code,
sum(quantity) as total_servings
from 1_lunch_items
group by supploer_id,
product_code
having sum(quantity)>=10
order by supplier_id,
product_code;
having子句与where子句的不同:where子句可以进行任何处理之前从原表删除。
having子句可以在进行绝大部分处理之后删除已分组和总结的数据。
where子句不能再它设置的条件中使用列函数。
总结的约束条件:
在group by子句只能列出一个列,而不是一个函数。
select子句中,distinct这个词只能列了同个列,而不是一个函数。
不能将一个列函数用在另一个列函数。

</pre>
<hr size=2 width=80% color=red>
<a href="首页.html"><font size=4 color=blue face=黑体>返回首页</a>
</body>


</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值