sql - 如何一起使用 COUNT 和 MAX 但分组?
问题描述
如何显示员工人数第二多的项目名称?
关系模式,主键和外键适用:
Employee(Eid,Ename,Address,city,Doj,salary) Project(Pid,Location,Pname,Mng,Client,Branch)
Works(Eid,Pid)
Works中的Eid和Pid是ForeignKey。eid 和 pid 分别是员工和项目中的主键
select count (*) , pname
from project natural join work
group by pname;
但这只会根据项目给出员工人数...不是最大员工人数
select max as ex1
from (Select count(*) as ex1
from works
where PID in ( select distinct pid from works);
我正在linux中尝试这个 - oracle
解决方案
好的,我认为下面的 SQL 会返回你想要的(2 号项目的名称和员工编号):
select * from
(
select
p.pname,
count(1) as cc
from
work w
join
project p on w.pid = p.pid
join
employee e on w.eid = e.eid
group by
p.pname
order by cc desc limit 2
) tmp order by cc asc limit 1
推荐阅读
- slickgrid - 每行数据的 Angular slickgrid 动态编辑器集合
- c# - 在 HttpRequestMessage 查询参数中传递 []
- google-cloud-platform - 获取 Google Cloud 中的公共 VM 映像列表
- node.js - Webpack JS API:输出到本地变量而不是创建 bundle.js 文件
- processing - 处理 Kinect (v2) 图像中间的奇怪点
- python - 我可以将值(Python文件将不断更新此值)连续写入json文件吗?
- javascript - 如何从 Cheerio/jQuery 中的源标签中检索链接
- vb.net - 在 VB.Net 中重载关键字
- javascript - 如何将对象的值转换为自变量
- google-apps-script - 无法从 Google 表格打开脚本编辑器;只登录一个帐户