簡體   English   中英

加入兩個 SQL SELECT 語句,在不同的列中有 output

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM