【发布时间】:2020-07-11 15:12:18
【问题描述】:
SELECT DISTINCT
DMC.MEM_NBR,
FIRST_NAME,
LAST_NAME,
PRODUCT_DESC,
DD.YEAR_MONTH AS FILL_DATE,
FC.PRODUCT_NBR
CASE
WHEN CAST ((CURRENT_DATE - DOB.DATE_DATE) / 365.25 as Int) >= 18 Then '18+'
ELSE 'Less than 18'
END MEM_AGE
FROM FT_PRODUCT_CLAIM FC
LEFT JOIN DIM_PRODUCT PRODUCT ON FC.PRODUCT_DIM_CK=PRODUCT.PRODUCT_DIM_CK
LEFT JOIN DIM_MEMBER DMC ON DMC.MEMBER_DIM_CK = FC.MEMBER_DIM_CK
INNER JOIN DIM_DATE DD ON DD.DATE_DIM_CK = FC.PRODUCT_DATE_DIM_CK
INNER JOIN DIM_DATE DOB ON DOB.DATE_DIM_CK = DMC.BIRTH_DATE_DIM_CK
WHERE FC.PRODUCT_NBR IN (SELECT * FROM TBL_PRODUCT)
AND FILL_DATE between 202001 and 202002
AND MEM_AGE = '18+'
ORDER BY FIRST_NAME
-- 问题: ---通过产品编号计算有多少产品与会员相关联 ---想总结每个成员的唯一产品NBRS的数量(MBR_NBR) ---然后为每个新的月份(Fill_Date)为会员的每个产品总和添加一个 YTD
【问题讨论】:
-
我想添加两个新字段,Product_Count,YTD_Product_Count,其中 Product_Count 将是 Product_NBR 总和的不同计数,YTD_Product_Count 将是 YTD 总数
-
有人对如何有效地做到这一点有任何想法吗?
-
您想要的两个新字段是:1) 每个成员的唯一产品总数,2) 年初至今每个成员每月的产品数 (
FILL_DATE)? YTD 必须是独特产品的数量还是可以是总产品? -
Ytd 是会员每月的产品总出现次数
-
YTD(年初至今)通常意味着包括从年初到给定时间点的所有内容。这是你想要的吗?或者您只是想要每个月的简单总数?如果是后者,那将简化我原来的答案。
标签: sql teradata teradata-sql-assistant