我需要帮助使用pivot子句创建表以包含每个Division_ID的平均工资,并使用employees2表中的数据将Division_ID用作Row,将Job_ID用作Column。
这是我的查询
SELECT *
FROM (
SELECT JOB_ID, DIVISION_ID, SALARY
FROM employees2
WHERE DIVISION_ID IN (1, 2, 3, 4, 5)
)
PIVOT (
AVG(SALARY) FOR JOB_ID IN (1 AS ENG, 2 AS MGR, 3 AS PRE, 4 AS WOR, 5 AS TEC)
)
ORDER BY DIVISION _ID;
当我尝试执行语句
时出现以下错误ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"
*Cause:
*Action:
Error at Line: 6 Column: 3
以下是employees2表中的数据(注意它们只有5个JOB_ID)
最后,这是一个我的结果应该是什么样子的例子
答案 0 :(得分:1)
根据您的示例数据,您的查询正在检查int
division_ids和job_ids,当它们显示为varchar
个字段时。
这是一个工作版本:
SELECT *
FROM (
SELECT JOB_ID, DIVISION_ID, SALARY
FROM employees2
WHERE DIVISION_ID IN ('div1','div2')
)
PIVOT (
AVG(SALARY) FOR JOB_ID IN ('job1', 'job2')
)
ORDER BY 1