저는 sum과 count 이상의 파티션과 같은 분석 함수를 사용하여 oracle 테이블에서 XML을 생성하려고합니다.XMLElement의 오라클 분석 함수
SELECT XMLElement("DEPARTMENT",
XMLAttributes((sum(amount) OVER (PARTITION BY deptid)) AS dept_sum,
(count(*) OVER (PARTITION BY deptid)) AS dept_count),
XMLAgg(
XMLElement("EMPLOYEE",
XMLConcat(XMLElement("EMP_SALARY", a.emp_salary),
XMLElement("EMP_ADDRESS", a.emp_address))
)
)
)
AS "EMP_XML"
FROM EMPLOYEES
이 합을 통해 오류가 아래의 출력
EMP_XML
-------------------------------------------
<DEPARTMENT dept_sum=150, dept_count=2>
<EMPLOYEE>
<EMP_SALARY>100</EMP_SALARY>
<EMP_ADDRESS>Mumbai</EMP_ADDRESS>
</EMPLOYEE>
<EMPLOYEE>
<EMP_SALARY>50</EMP_SALARY>
<EMP_ADDRESS>Hyderabad</EMP_ADDRESS>
</EMPLOYEE>
</DEPARTMENT>
있어 및 계산 기능을 다음과 기대 : 다음 쿼리를 사용
ORA-00937: not a single-group group function
어떻게들은 XMLElement 함수에서 분석 기능을 사용합니까? 당신은 별칭 a
을 사용하는
하지만 당신은 그것을 정의되지 않는다 :
SELECT XMLElement("DEPARTMENT",
XMLAttributes(sum(emp_salary) AS dept_sum,
count(1) AS dept_count),
XMLAgg(
XMLElement("EMPLOYEE",
XMLConcat(XMLElement("EMP_SALARY", emp_salary),
XMLElement("EMP_ADDRESS", emp_address))
)
)
)
AS "EMP_XML"
FROM EMPLOYEES
Group by deptid;