1 つではなく複数の行を持つ location_id でデータをピボットしようとしています。複数の場所があり、毎回 location_name をハードコードすることなく、データをピボットして複数の合計を計算する簡単な方法が必要です。これにアプローチする方法がわからず、正しい方向へのプッシュに感謝します。DB2 データベース。
SELECT RowNumber () over (PARTITION BY DIM_LOCATION_ID ORDER BY LOCATION_NAME),
DIM_LOCATION_ID,
LOCATION_NAME,
(
SELECT
SUM(SALES_AMOUNT) AS SALES_SUMMARY
FROM FACT_TABLE
WHERE LOCATION_NAME = 'DENVER'
) AS SALES_SUMMARYDV,
(
SELECT
SUM(SALES_AMOUNT) AS SALES_SUMMARY
FROM FACT_TABLE
WHERE LOCATION_NAME = 'CHICAGO'
) AS SALES_SUMMARYCH,
(
SELECT
SUM(ORDERS) AS SUMMARY_ORDERS
FROM FACT_TABLE
WHERE LOCATION_NAME = 'DENVER'
) AS ORDER_SUMMARYDV,
(
SELECT
SUM(ORDERS) AS SUMMARY_ORDERS
FROM FACT_TABLE
WHERE LOCATION_NAME = 'CHICAGO'
) AS ORDER_SUMMARYCH
FROM FACT_TABLE
GROUP BY DIM_LOCATION_ID, LOCATION_NAME
ORDER BY LOCATION_NAME
望ましい結果: