网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月27日漏签0天
sql吧 关注:57,239贴子:144,885
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 7回复贴,共1页
<<返回sql吧
>0< 加载中...

关于聚合函数的问题

  • 只看楼主
  • 收藏

  • 回复
  • 裕民居士
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
有一个  系别表

系编号    系名

有一个  班级表

班级编号  系编号  班级名 

要查看每个系有好多个班

select 系名,count(班级编号) as 班级个数
from 系别表 inner join 班级表
on 系别表.系编号= 班级表系编号
GROUP BY 系名

没有班级的那个系就不会显示,怎么让没有班级的那个系在 
 班级个数   那里显示为0啊




  • muyisoft
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
right join 能不能实现,你试


2026-02-27 04:52:04
广告
不感兴趣
开通SVIP免广告
  • 124.161.98.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
select a.系名,
(case b.班级编号 when b.班级编号 then count(b.班级编号) else 0 end) as 班级个数
from 系别表 a inner join 班级表 b on a.系编号=b.系编号
group by 系名

/*没上机测试,无法得知代码是否正确*/


  • 124.161.98.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
把问题想的太复杂了,就用左表连接就行了

--测试数据

--测试系别表
declare @tab1 table(xid varchar(8),xname varchar(8))
insert @tab1
select '0001','计算机系' union all
select '0002','物理系' union all
select '0003','工程系' union all
select '0004','文学系';

--建立班级表

declare @tab2 table(cid varchar(8),xid varchar(8),cname varchar(20))
insert @tab2
select '200801','0001','九一级一班' union all
select '200802','0001','九一级二班' union all
select '200701','0002','八九级一班' union all
select '200702','0002','八九级三班' union all
select '200703','0002','八九级五班' union all
select '200901','0004','九二级一班' union all
select '200902','0004','九二级二班' union all
select '200903','0004','九二级三班' union all
select '200904','0004','九二级四班';

--select * from @tab1
--select * from @tab2

--测试代码

select a.xname 系名,count(b.cid) as 班级个数 from @tab1 a 
left join @tab2 b on a.xid=b.xid group by a.xname

/*测试结果 

(所影响的行数为 4 行)


(所影响的行数为 9 行)

系名 班级个数 
-------- ----------- 
工程系 0
计算机系 2
文学系 4
物理系 3

(所影响的行数为 4 行)*/


  • 125.71.139.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
declare @tab1 啥意思哦


  • 裕民居士
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
三楼的 师兄 
(case b.班级编号 when b.班级编号 then count(b.班级编号) else 0 end)

没有 看懂这一


  • 124.161.98.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
declare @tab1 table --建立一个临时表
只需把3楼的代码复制到SQL的查询分析器,就可以测试结果是否正确


  • 梦寻依稀
  • 活跃吧友
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
4楼的不错


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 7回复贴,共1页
<<返回sql吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示