SQL Pivot Return 值而不是计数
SQL PIvot Return Value instead of count
我正在尝试创建一个 SQL 数据透视查询,其中 return 结果是产品名称而不是“0”或“1”值(我正在寻找不同的值相反)。
这是我现有的查询:
SELECT *
FROM
( select
EBA_PROJ_STATUS.PROJECT AS PROJECT,
EBA_PROJ_STATUS.REGION AS REGION,
EBA_PROJ_STATUS_AIS.ONE_DB_PRODUCT_TYPE AS ONE_DB_PRODUCT_TYPE
from EBA_PROJ_STATUS EBA_PROJ_STATUS,
EBA_PROJ_STATUS_AIS EBA_PROJ_STATUS_AIS
where EBA_PROJ_STATUS_AIS.PROJECT_ID=EBA_PROJ_STATUS.ID
)
PIVOT (
COUNT (distinct ONE_DB_PRODUCT_TYPE) FOR (ONE_DB_PRODUCT_TYPE)
IN ('PROD1' as PROD1, 'PROD2' as PROD2, 'PROD3' as PROD3, 'PROD4' as PROD4, 'PROD4' as PROD5)
)
这会将每个产品作为 header 作为 PROD1、PROD2 等,并将值 return 设为“0”或“1”。有没有办法获取 0 和 1 并将其输出为产品字符串?
提前致谢!
您可以只使用值本身的聚合函数:
...
PIVOT (
MAX (ONE_DB_PRODUCT_TYPE) FOR (ONE_DB_PRODUCT_TYPE)
IN ('PROD1' as PROD1, 'PROD2' as PROD2, 'PROD3' as PROD3, 'PROD4' as PROD4, 'PROD4' as PROD5)
);
但这会给你带来如下结果:
PROJECT REGI PROD1 PROD2 PROD3 PROD4 PROD5
--------- ---- ----- ----- ----- ----- -----
Project 1 EMEA PROD2 PROD3
Project 2 NA PROD1 PROD3
这似乎并不完全有用。你可以 NVL/coalesce 外部 select 中的值,如果你想显示空值以外的东西而不是你现在拥有的零。
我正在尝试创建一个 SQL 数据透视查询,其中 return 结果是产品名称而不是“0”或“1”值(我正在寻找不同的值相反)。
这是我现有的查询:
SELECT *
FROM
( select
EBA_PROJ_STATUS.PROJECT AS PROJECT,
EBA_PROJ_STATUS.REGION AS REGION,
EBA_PROJ_STATUS_AIS.ONE_DB_PRODUCT_TYPE AS ONE_DB_PRODUCT_TYPE
from EBA_PROJ_STATUS EBA_PROJ_STATUS,
EBA_PROJ_STATUS_AIS EBA_PROJ_STATUS_AIS
where EBA_PROJ_STATUS_AIS.PROJECT_ID=EBA_PROJ_STATUS.ID
)
PIVOT (
COUNT (distinct ONE_DB_PRODUCT_TYPE) FOR (ONE_DB_PRODUCT_TYPE)
IN ('PROD1' as PROD1, 'PROD2' as PROD2, 'PROD3' as PROD3, 'PROD4' as PROD4, 'PROD4' as PROD5)
)
这会将每个产品作为 header 作为 PROD1、PROD2 等,并将值 return 设为“0”或“1”。有没有办法获取 0 和 1 并将其输出为产品字符串?
提前致谢!
您可以只使用值本身的聚合函数:
...
PIVOT (
MAX (ONE_DB_PRODUCT_TYPE) FOR (ONE_DB_PRODUCT_TYPE)
IN ('PROD1' as PROD1, 'PROD2' as PROD2, 'PROD3' as PROD3, 'PROD4' as PROD4, 'PROD4' as PROD5)
);
但这会给你带来如下结果:
PROJECT REGI PROD1 PROD2 PROD3 PROD4 PROD5
--------- ---- ----- ----- ----- ----- -----
Project 1 EMEA PROD2 PROD3
Project 2 NA PROD1 PROD3
这似乎并不完全有用。你可以 NVL/coalesce 外部 select 中的值,如果你想显示空值以外的东西而不是你现在拥有的零。