[英]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.