sql - 如何划分不同条件的两个查询?
问题描述
有一个表,其中包含管理器列和状态列。如何计算Fully的总状态,每个经理除N / A之外的所有状态的记录总数?
我试图以这种方式描绘,但没有任何结果
第一次查询
SELECT "Manager Name", count("Performance Score") as Perfomance FROM public.hr_dataset WHERE
("Performance Score" = 'Fully Meets') GROUP BY "Manager Name"
ORDER BY Perfomance DESC;
第二次查询
SELECT "Manager Name", count("Performance Score") FROM public.hr_dataset
WHERE ("Performance Score" != 'N/A- too early to review') GROUP BY "Manager Name";
需要接收具有名称和值的两列(1 个查询/2 个查询)
解决方案
如果我理解这一点,您可以使用FILTER
根据性能得分来限制计数的行。
SELECT "Manager Name",
count(*) FILTER (WHERE "Performance Score" = 'Fully Meets')
/
count(*) FILTER (WHERE "Performance Score" <> 'N/A- too early to review')
FROM public.hr_dataset
GROUP BY "Manager Name";
顺便说一句,你那里的列名很糟糕,所有的空格和大写字母等等......
推荐阅读
- sql-server - 错误:按表达式分组必须至少包含一列不是外部引用
- elasticsearch - 更新 Elastic Search 中固定文档的分数
- javascript - 在 JavaScript 中的数组输入处过滤数组最小值的问题
- postgresql - 配置:ActiveDirectory、PostgreSQL、GSSAPI
- r - 删除列表中的 S3 标签
- python - 切片字典的键以分配数据
- c# - 当从存储库调用它时,RestSharp 给了我 BadRequest
- python-3.x - Pandas - 查找每个班级组中显示的唯一值
- jquery - jquery - 按钮在scrollBy之后悬停
- aws-lambda - aws kinesis firehose 通过 lambda 到 aws elasticsearch,如何修改或删除?