使用partition by来计算Oracle

时间:2016-11-30 21:18:49

标签: oracle partition

我有一张EMP表。我需要按国家名称='印度'美国'澳大利亚'

分组。

例如,

DEPARTMENT   | #EMPLOYEE(INDIA) | #EMPLOYEE(USA) | # EMPLOYEE(AUSTRALIA)    
ACCOUNTING   | 5                |2               | 3
IT           | 5                |2               | 1
BUSINESS     | 1                |4               | 3

我需要使用Partition BY来完成它。我可以使用PARTITION by来获得每个部门的员工总数。但我无法按国家/地区分组。

请给我建议。

谢谢。

1 个答案:

答案 0 :(得分:0)

考虑条件计数。

SELECT  DEPARTMENT,
        COUNT(CASE WHEN Country = 'INDIA' THEN 1 END) as emp_india,
        COUNT(CASE WHEN Country = 'USA' THEN 1 END) as emp_usa,
        COUNT(CASE WHEN Country = 'AUSTRALIA' THEN 1 END) as emp_australia
GROUP BY DEPARTMENT