sql语句中where与having的区别

1.创建名称为bumen、yuangong、gognzi的表。

create table bumen

(
bumen_id int primary key,
bumen_mch nvarchar(100) not null
)


create table yuangong
(
yuangong_id int primary key,
yuangong_name nvarchar(100) not null,
yuangong_gz int,
bumen_id int
)


create table gongzi
(
gongzi_id int primary key,
gongzi_hi int,
gongzi_lw int
)

2.向表中添加数据
insert into bumen values(10,'研发');
insert into bumen values(20,'测试');

insert into bumen values(30,'人力');

select * from bumen

insert into yuangong values(1,'张三',5000,10);
insert into yuangong values(2,'李四',10000,20);
insert into yuangong values(3,'王五',15000,10);

delete from yuangong where yuangong_id=3;

select * from yuangong

insert into gongzi values(1,5000,1500);
insert into gongzi values(2,10000,5001);
insert into gongzi values(3,15000,10001);

select * from gongzi


3.语句的顺序也是不可以改变的。

select 
--"B".bumen_mch "部门名称",AVG("Y".yuangong_gz) "部门平均工资"
from bumen "B"
join yuangong "Y"
on "B".bumen_id="Y".bumen_id
join gongzi "G"
on "Y".yuangong_gz<="G".gongzi_hi and "Y".yuangong_gz>="G".gongzi_lw

执行结果:

bumen_idbumen_mchyuangong_idyuangong_nameyuangong_gzbumen_idgongzi_idgongzi_higongzi_lw
10研发1张三500010150001500
20测试2李四10000202100005001
10研发3王五150001031500010001


select 
--"B".bumen_mch "部门名称",AVG("Y".yuangong_gz) "部门平均工资"
from bumen "B"
join yuangong "Y"
on "B".bumen_id="Y".bumen_id
join gongzi "G"
on "Y".yuangong_gz<="G".gongzi_hi and "Y".yuangong_gz>="G".gongzi_lw
where "Y".yuangong_gz>5000                            --对聚合表的详细内容进行筛选。

执行结果:

bumen_idbumen_mchyuangong_idyuangong_nameyuangong_gzbumen_idgongzi_idgongzi_higongzi_lw
20测试2李四10000202100005001
10研发3王五150001031500010001


select  "B".bumen_mch "部门名称",AVG("Y".yuangong_gz) "部门平均工资"
from bumen "B"
join yuangong "Y"
on "B".bumen_id="Y".bumen_id
join gongzi "G"
on "Y".yuangong_gz<="G".gongzi_hi and "Y".yuangong_gz>="G".gongzi_lw
where "Y".yuangong_gz>5000                
group by "B".bumen_mch                           --对聚合表进行分组


部门名称部门平均工资
测试10000
研发15000

select "B".bumen_mch "部门名称",AVG("Y".yuangong_gz) "部门平均工资"
from bumen "B"
join yuangong "Y"
on "B".bumen_id="Y".bumen_id
join gongzi "G"
on "Y".yuangong_gz<="G".gongzi_hi and "Y".yuangong_gz>="G".gongzi_lw
where "Y".yuangong_gz>5000                   
group by "B".bumen_mch

having AVG("Y".yuangong_gz)>10000     --对分组表的内容进行筛选。


执行结果:

部门名称部门平均工资
研发15000


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值