查询:2.列出在2000年小马丁·路德·金纪念日消费最多的前5位购物者(人数)。(提示:使用SELECT TOP 5…。)
SELECT TOP 5 Member_Dimension.Member_Key AS "Top 5 Members", Total_Scan_Amount As "Total Scan Amount"
FROM Item_Scan_Fact, Member_Dimension, Date_Dimension
WHERE Item_Scan_Fact.Member_Key = Member_Dimension.Member_Key
AND Item_Scan_Fact.Transaction_Date_Key = Date_Dimension.Date_Key
AND Date_Dimension.Year_Number = 2000
AND Date_Dimension.Day_Description LIKE 'Martin';
我的代码不返回任何值,只是一个空表。我认为错误的来源是Day_Description,但我不确定。我相信这是因为当我删除WHERE子句下的Day_Description =时,代码确实返回了5个值的表。
这是在UA_SAMSCLUB_STAR
下的Teradata上。非常感谢!
答案 0 :(得分:1)
您的问题是Date_Dimension.Day_Description LIKE 'Martin'
条件,该条件仅返回完全匹配。尝试使用Date_Dimension.Day_Description LIKE 'Martin%'
。
正如蒂姆已经指出的,添加ORDER BY Total_Scan_Amount DESC
以获得最高金额。