【发布时间】:2023-03-18 15:36:01
【问题描述】:
我有两个查询语句,它们完全相同,只有 3 列不同,我用于创建数据透视表。前两列给出了枢轴的维度,而第三列包含我们称之为聚合函数的数据。
我是 SQL 新手,所以我想知道是否有任何干净的方法来定义一个具有 3 个列名参数和第 4 个参数的函数,它给出了聚合函数。
SELECT *
FROM (
SELECT SDDCTO, SDSRP4, SDSOQS
FROM MyTable
)
PIVOT (
sum(SDSOQS)
for SDDCTO
IN ('EB' AS EB
'EL' AS EL,
'ER' AS ER,
'ES' AS ES,
'E1' AS E1,
'E2' AS E2,
'E5' AS E5
'E9' AS E9
)
)
ORDER BY SDSRP4
;
-- Same query with different columns and aggregate function
SELECT *
FROM (
SELECT SDDCTO, SDMCU, SDAEXP
FROM MyTable
)
PIVOT (
avg(SDAEXP)
for SDDCTO
IN ('EB' AS EB,
'EL' AS EL,
'ER' AS ER,
'ES' AS ES,
'E1' AS E1,
'E2' AS E2,
'E5' AS E5,
'E9' AS E9
)
)
ORDER BY SDMCU
;
【问题讨论】:
标签: oracle function plsql boilerplate