一个查询中有两个WHERE和COUNT

Oce*_*lue 4 sql oracle

我需要根据不同的标准在同一个查询中得到两个求和.两个标准都在同一列上运行.有没有办法做到这一点?

我最好用一个例子解释一下:

表:salary_survey_result

专栏:行业,地点,职位,薪水

实际上我想要结合以下两个查询:

SELECT industry, location, count(*) as MORE_THAN_SIX_FIGURE   
FROM salary_survey_result  
WHERE salary > 100000  
GROUP BY industry, location
Run Code Online (Sandbox Code Playgroud)

SELECT industry, location, count(*) as MORE_THAN_FIVE_FIGURE  
FROM salary_survey_result  
WHERE salary > 10000  
GROUP BY industry, location
Run Code Online (Sandbox Code Playgroud)

所以结果是这样的:
industry location MORE_THAN_FIVE_FIGURE MORE_THAN_SIX_FIGURE


Healthcare    NY               45                      10  
Healthcare    MN               35                       6   
InfoTech      NY               50                      19
InfoTech      MN               40                      12
Run Code Online (Sandbox Code Playgroud)

Jus*_*ave 8

就像是

SELECT industry, 
       location, 
       sum( case when salary >= 10000 then 1 else 0 end) as MORE_THAN_FIVE_FIGURE,
       sum( case when salary >= 100000 then 1 else 0 end) as MORE_THAN_SIX_FIGURE
  FROM salary_survey_result  
  WHERE salary >= 10000  
  GROUP BY industry, location
Run Code Online (Sandbox Code Playgroud)

WHERE salary >= 10000条款对于结果不是必需的.如果有一个索引SALARY并且大多数工资值小于10000,它可能会提高绩效.请注意,我也假设你的意思是,>=而不是>因为10,000的薪水是五位数的薪水.