26.【较难】汇总各个部门当前员工的title类型的分配数目

汇总各个部门当前员工的title类型的分配数目

http://www.nowcoder.com/questionTerminal/4bcb6a7d3e39423291d2f7bdbbff87f8

先上正确代码

select d.dept_no,
       d.dept_name,
       t.title,
       count(t.title)as count
from departments d,dept_emp de,titles t
where de.emp_no=t.emp_no
and de.dept_no=d.dept_no
and de.to_date='9999-01-01'
and t.to_date='9999-01-01'
group by d.dept_no,t.title

下面是我一开始写的,很典型的易错点

select d.dept_no,
       d.dept_name,
       t.title,
       count(t.title)as count
from departments d,dept_emp de,titles t
where de.emp_no=t.emp_no
and de.dept_no=d.dept_no
and de.to_date='9999-01-01'
and t.to_date='9999-01-01'
group by d.dept_no -- 只按照部门分组,不符合题意的;同理只按title分组也不行
数据分析阿宇君的SQL题解 文章被收录于专栏

数据分析的SQL题目

全部评论
是count(d.emp_no)吧
1 回复 分享
发布于 2021-07-06 10:11
你这个不对啊= =
1 回复 分享
发布于 2021-01-19 16:17
1.应该加上order by d.dept_no 2.d.dept_name不在group by聚合函数里面,怎么能用select呢,应该用max(d.dept_name)或者在group by 中添加d.dept_name,虽然牛客网能编译过,但是实际上是错误的吧!
10 回复 分享
发布于 2021-03-31 03:38
需要加上 order by d.dept_no;
8 回复 分享
发布于 2021-02-04 09:40
还需要对部门名称进行分组,group by d.dept_no,d.dept_name,t.title
7 回复 分享
发布于 2021-02-19 15:54
楼主的最后没有order by d.dept_no
4 回复 分享
发布于 2021-02-28 21:00
你这个没有order by
1 回复 分享
发布于 2022-02-18 10:44
有group by的时候不是要求select 后面只能加分组函数和group by 后面的字段吗
1 回复 分享
发布于 2021-07-23 10:52
跑不通
1 回复 分享
发布于 2020-12-03 22:12
请问如果一个员工被分配了多个类型的话,这个代码中title怎么显示出全部类型呢,并没有拼接的语句
点赞 回复 分享
发布于 2023-03-31 18:27 河北
select DISTINCT a.dept_no ,b.dept_name ,c.title ,count( a.dept_no) over(partition by a.dept_no,c.title) as count from dept_emp a left join departments b on a.dept_no=b.dept_no left join titles c on a.emp_no=c.emp_no
点赞 回复 分享
发布于 2022-12-01 16:37 广东
题主的正确代码里,group by 里面还要加上title,因为title是非聚合字段,所以要加上,还有就是最后要加上排序,就完美了
点赞 回复 分享
发布于 2022-11-23 21:04 河南
group by de.dept.no 而不是group by d.dept.no,应该是按照原来的部门表进行分组 还有就还有一句ORDER BY d.dept_no
点赞 回复 分享
发布于 2022-06-05 23:06
错在了同样的地方
点赞 回复 分享
发布于 2022-01-15 14:41
我不明白为什么要加日期
点赞 回复 分享
发布于 2021-10-02 12:03
难道不是group by 学生ID?
点赞 回复 分享
发布于 2021-09-30 15:51
少了一句排序 order by d.dept_no
点赞 回复 分享
发布于 2021-09-20 20:25
GROUP BY de.dept_no,t.title我看评论有要对dept_name进行分组的,但是一个部门只会有一个名称啊,即department里面只存在一个啊,实际上对dept_name分组对但没必要,也不会错吧,求解答一下
点赞 回复 分享
发布于 2021-09-17 11:11
这种连接方式挺新奇的,居然能过
点赞 回复 分享
发布于 2021-09-16 16:12
也可以加和group by后面字段一一对应的字段
点赞 回复 分享
发布于 2021-08-22 15:36

相关推荐

评论
62
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务