【发布时间】:2018-01-24 00:01:50
【问题描述】:
我有以下查询:
SELECT "CASE_RECORD_ID",
"OPEN_DT",
"PENDING_DT",
"CLOSED_DT"
FROM
(SELECT case_record_id,
workflow_status_cd,
workflow_status_dt
FROM case_workflow_status
) PIVOT ( MIN(workflow_status_dt) FOR workflow_status_cd IN ('O' AS open_dt, 'P' AS pending_dt, 'C' AS closed_dt) );
如何根据 workflow_status_cd 应用不同的聚合函数?我的非工作尝试如下:
SELECT "CASE_RECORD_ID",
"OPEN_DT",
"PENDING_DT",
"CLOSED_DT"
FROM
(SELECT case_record_id,
workflow_status_cd,
workflow_status_dt
FROM case_workflow_status
)
PIVOT (
(
CASE workflow_status_cd
WHEN 'O' THEN MIN(workflow_status_dt)
WHEN 'P' THEN MAX(workflow_status_dt)
WHEN 'C' THEN MAX(workflow_status_dt)
END
)
FOR workflow_status_cd IN ('O' AS open_dt, 'P' AS pending_dt, 'C' AS closed_dt)
);
【问题讨论】: