[英]Join two SQL SELECT statements and have output in different columns
我有一个数据库,其中包含特定工作类型的薪水值,我正在尝试获取一个 output 来分隔工作、给出薪水信息的工作数量,以及高于特定薪水限制的工作数量。
SELECT * FROM
(SELECT job_list_name, COUNT(job_list_name) FROM Jobs_Salaries
WHERE salary_range_low = "100K+" OR salary_range_low = "125K+"
OR salary_range_low = "150K" OR salary_range_low = "200K+") AS t1
INNER JOIN
(SELECT job_list_name, COUNT(job_list_name) FROM Jobs_Salaries
WHERE indeed_salary != "None") AS t2
ON t1.job_list_name = t2.job_list_name
GROUP BY t1.job_list_name
ORDER BY COUNT(t2.job_list_name) DESC;
这是我目前拥有的,但我的 output 是这样的:
MACHINE LEARNING ENGINEER|178
DATA ENGINEER|148
DATA SCIENTIST|122
DATA ANALYST|15
MACHINE LEARNING ENGINEER|241
DATA ANALYST|224
DATA ENGINEER|219
DATA SCIENTIST|187
DATA ANALYST|463|DATA ANALYST|871
高于最后一个数据分析师值的值是每个语句的单独输出,但我不确定为什么最后一个值在那里。 我正在尝试实现这样的 output:
Job Type # of Jobs with Salary Values # of Jobs above $100k
DATA ENGINEER 400 150
DATA ANALYST 300 100
DATA SCIENTIST 200 125
MACHINE LEARNING ENGINEER 100 100
值由每个 SELECT 语句的计数分隔,并按职位分组。 任何帮助表示赞赏!
通过将WHERE
条件移动到聚合的SELECT
列来考虑条件聚合:
SELECT job_list_name,
SUM(indeed_salary != 'None') AS [# of Jobs with Salary Values],
SUM(salary_range_low IN ('100K+', '125K+', '150K', '200K+')) AS [# of Jobs above $100k]
FROM Jobs_Salaries
GROUP BY job_list_name
ORDER BY COUNT(t2.job_list_name) DESC;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.