PL/SQL: 需要在 select 查询中创建条件计算列
PL/SQL: Need to create conditional calculated columns in the select query
我正在尝试在 select 查询中创建条件计算列。逻辑如下
Select FT.NAME,
COUNT(DISTINCT PAGEID) as Total_Forms,
COUNT(DISTINCT PAGEID WHERE FT."Column1?" =1) as Expected_forms,
COUNT(DISTINCT PAGEID WHERE FT."Column1?" =1 AND FT."FORM STATUS" in ('C','I') as Actual_forms,
COUNT(DISTINCT DATAPAGEID WHERE FT."IS FORM EXPECTED1?" =1)/
COUNT(DISTINCT DATAPAGEID WHERE FT."IS FORM EXPECTED1?" =1 AND FT."FORM STATUS" in ('C','I'))
as Percentage
FROM
(Subquery) FT
Group by FT.Name
我尝试了各种组合,但到目前为止没有任何效果。输出看起来像这样
name Total_forms Expected_forms Actual Forms Percentage
abc 943 811 781 96.54%
pqr 900 800 600 75.00%
但是我无法在 PL/SQL 查询中表达这一点。非常感谢任何帮助。
语法错误:
COUNT(DISTINCT PAGEID WHERE FT."Column1?" =1) as Expected_forms,
SELECT
COUNT(DISTINCT PAGEID) as Total_Forms,
COUNT(DISTINCT CASE WHEN FT."Column1?" =1 THEN PAGEID END ) as Expected_forms,
COUNT(DISTINCT CASE WHEN FT."Column1?" =1 AND FT."FORM STATUS" in ('C','I')
THEN PAGEID END ) as Actual_forms,
COUNT(DISTINCT CASE WHEN FT."IS FORM EXPECTED1?" =1 THEN DATAPAGEID END)/
COUNT(DISTINCT CASE WHEN FT."IS FORM EXPECTED1?" =1 AND FT."FORM STATUS" in ('C','I')
THEN DATAPAGEID END) as Percentage
FROM
(Subquery) FT
Group by FT.Name
我正在尝试在 select 查询中创建条件计算列。逻辑如下
Select FT.NAME,
COUNT(DISTINCT PAGEID) as Total_Forms,
COUNT(DISTINCT PAGEID WHERE FT."Column1?" =1) as Expected_forms,
COUNT(DISTINCT PAGEID WHERE FT."Column1?" =1 AND FT."FORM STATUS" in ('C','I') as Actual_forms,
COUNT(DISTINCT DATAPAGEID WHERE FT."IS FORM EXPECTED1?" =1)/
COUNT(DISTINCT DATAPAGEID WHERE FT."IS FORM EXPECTED1?" =1 AND FT."FORM STATUS" in ('C','I'))
as Percentage
FROM
(Subquery) FT
Group by FT.Name
我尝试了各种组合,但到目前为止没有任何效果。输出看起来像这样
name Total_forms Expected_forms Actual Forms Percentage
abc 943 811 781 96.54%
pqr 900 800 600 75.00%
但是我无法在 PL/SQL 查询中表达这一点。非常感谢任何帮助。
语法错误:
COUNT(DISTINCT PAGEID WHERE FT."Column1?" =1) as Expected_forms,
SELECT
COUNT(DISTINCT PAGEID) as Total_Forms,
COUNT(DISTINCT CASE WHEN FT."Column1?" =1 THEN PAGEID END ) as Expected_forms,
COUNT(DISTINCT CASE WHEN FT."Column1?" =1 AND FT."FORM STATUS" in ('C','I')
THEN PAGEID END ) as Actual_forms,
COUNT(DISTINCT CASE WHEN FT."IS FORM EXPECTED1?" =1 THEN DATAPAGEID END)/
COUNT(DISTINCT CASE WHEN FT."IS FORM EXPECTED1?" =1 AND FT."FORM STATUS" in ('C','I')
THEN DATAPAGEID END) as Percentage
FROM
(Subquery) FT
Group by FT.Name