如何修改含DENSE_RANK的SQL代码,获取客户最后购买日期与购买次数
解决方法
你需要通过分组聚合来实现每个客户一行的汇总结果,原代码的问题在于未按客户分组,导致输出每条交易记录并附带rank值,无法得到目标的客户级汇总数据。
修改后的SQL代码如下:
SELECT cust_xref_id, MAX(CAST(txn_ts AS timestamp)) AS last_purchase_date, COUNT(*) AS purchase_count FROM sales_data_table GROUP BY cust_xref_id
代码说明:
GROUP BY cust_xref_id:按客户ID对数据分组,确保每个客户仅返回一行结果MAX(CAST(txn_ts AS timestamp)):提取每个客户所有交易日期的最大值,即最后一次购买日期(若txn_ts本身已是timestamp类型,可直接写MAX(txn_ts))COUNT(*):统计每个客户的交易总次数
内容的提问来源于stack exchange,提问作者Soumya Pandey
相关产品推荐
相关产品推荐

