0415
This commit is contained in:
@@ -56,69 +56,30 @@ table Dim_Class
|
||||
){
|
||||
[Name = CatalogName, Kind = "Database"]
|
||||
}[Data],
|
||||
"SELECT DISTINCT MARKET,
|
||||
CASE
|
||||
WHEN NVL(A.CLASS, '') = ''
|
||||
OR A.CLASS = 'Others' THEN '-'
|
||||
ELSE UPPER(A.CLASS)
|
||||
END CLASS,
|
||||
A.DATA_SOURCE,
|
||||
NVL(PN.RN, 99) CLASS_RN
|
||||
FROM
|
||||
DM.DM_TD_EXTERNAL_MARKET_PACK_MAPPING A
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
CLASS,
|
||||
row_number() OVER(
|
||||
PARTITION BY 1
|
||||
ORDER BY
|
||||
(
|
||||
CASE
|
||||
WHEN CLASS = '-' THEN 0
|
||||
ELSE SALES_VALUE_CAL
|
||||
END
|
||||
) DESC
|
||||
) RN
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
UPPER(
|
||||
CASE
|
||||
WHEN NVL(CLASS, '') = ''
|
||||
OR CLASS = 'Others' THEN '-'
|
||||
ELSE UPPER(CLASS)
|
||||
END
|
||||
) CLASS,
|
||||
SUM(B.SALES_VALUE_CAL) SALES_VALUE_CAL
|
||||
FROM
|
||||
DM.DM_TD_EXTERNAL_MARKET_PACK_MAPPING A
|
||||
INNER JOIN DM.DM_TF_EXTERNAL_SALES B ON A.PACK_COD = B.PACK_COD
|
||||
AND A.DATA_SOURCE = B.DATA_SOURCE
|
||||
and a.new_code = b.new_code
|
||||
WHERE
|
||||
B.YYYYMM >= (
|
||||
SELECT
|
||||
LEFT(MAX(YYYYMM), 4) * 100 + 1
|
||||
FROM
|
||||
DM.DM_TF_EXTERNAL_SALES
|
||||
WHERE
|
||||
DATA_SOURCE = 'IQVIA-CHPA(Monthly)'
|
||||
)
|
||||
AND B.DATA_SOURCE = 'IQVIA-CHPA(Monthly)'
|
||||
GROUP BY
|
||||
CASE
|
||||
WHEN NVL(CLASS, '') = ''
|
||||
OR CLASS = 'Others' THEN '-'
|
||||
ELSE UPPER(CLASS)
|
||||
END
|
||||
) T
|
||||
) PN ON UPPER(
|
||||
CASE
|
||||
WHEN NVL(A.CLASS, '') = ''
|
||||
OR A.CLASS = 'Others' THEN '-'
|
||||
ELSE UPPER(A.CLASS)
|
||||
END
|
||||
) = PN.CLASS
|
||||
"WITH class_sales AS (
|
||||
-- 第一步:聚合,得到每个 class 的总销售额
|
||||
SELECT
|
||||
class,
|
||||
SUM(SALES_VALUE_CAL) AS total_sales
|
||||
FROM dm.dm_tf_ext_unionall_market_sales
|
||||
WHERE DATA_SOURCE = 'IQVIA-CHPA(Monthly)'
|
||||
GROUP BY class
|
||||
),
|
||||
class_rn AS (
|
||||
-- 第二步:按总销售额排序,生成行号
|
||||
SELECT
|
||||
class,
|
||||
ROW_NUMBER() OVER (ORDER BY total_sales) AS rn
|
||||
FROM class_sales
|
||||
)
|
||||
SELECT /*+ BROADCAST(R) */
|
||||
L.MARKET,
|
||||
L.CLASS,
|
||||
L.DATASOURCE AS DATA_SOURCE,
|
||||
COALESCE(R.rn, 99) AS CLASS_RN
|
||||
FROM dm.dm_td_ext_unionall_market_pack_mapping L
|
||||
LEFT JOIN class_rn R
|
||||
ON L.CLASS = R.CLASS
|
||||
"
|
||||
& UsingLimit,
|
||||
null,
|
||||
@@ -130,7 +91,7 @@ table Dim_Class
|
||||
Source
|
||||
```
|
||||
|
||||
annotation PBI_ResultType = Exception
|
||||
annotation PBI_ResultType = Table
|
||||
|
||||
annotation PBI_NavigationStepName = Navigation
|
||||
|
||||
|
||||
Reference in New Issue
Block a user