2017-09-03 100 views
0

嗨我試圖在編寫一個簡單的查詢以獲取該部門的部門編號和僱員人數時嘗試使用PIVOT函數,但是出現錯誤。在Oracle 11G中賦予無效識別的PIVOT功能

這裏是我的查詢

select deptno ,emp_count from ( select deptno from EMPLOYEE ) PIVOT (COUNT(name) for deptno in('10','20','30') );

我收到以下錯誤

ORA-00904: "NAME": invalid identifier 00904. 00000 - "%s: invalid identifier"

這是我的表

enter image description here

任何人都可以幫助我在SQL查詢中編寫和理解PIVOT函數。

+0

您使用的是MS SQL Server還是Oracle? (他們的支點是不一樣的。) – jarlh

+0

這裏的大多數人想要格式化文本,而不是圖像,或鏈接到圖像。 – jarlh

+0

@jarlh好吧,我將從接下來的格式化文本,我使用Oracle,圖片是從工具SQL開發人員 –

回答

1

查詢的語法不正確。編寫它的正確方法如下所示。 請注意,我已經使用emp_count_?形式的別名;您可以根據需要修改它。

SELECT 
    * 
FROM 
    (
     SELECT 
     deptno, 
     name 
     FROM 
     employee 
    ) 
    PIVOT (COUNT(name) FOR deptno IN 
    (
     '10' AS emp_count_10, 
     '20' AS emp_count_20, 
     '30' AS emp_count_30 
    ) 
); 
+0

謝謝Kaushik,我只是試過COUNT(*)它的工作。謝謝。我在PIVOT上得到了一些關於如何寫作的想法。 –