SQL 查询:计算每个会员每个现金支付日期的商品统计信息
可以使用以下 SQL 查询来计算每个会员每个用了现金支付的日期,用现金买了多少种商品,用现金买多少个商品,以及累计该日期之前该会员所有付款方式累计买多少种商品,累计该日期之前买多少个商品:\n\nsql\nSELECT t1.会员名, t1.日期, COUNT(DISTINCT t1.商品名) AS 用现金买了多少种商品, COUNT(t1.商品名) AS 用现金买多少个商品, \n COUNT(DISTINCT t2.商品名) AS 累计该日期之前该会员所有付款方式累计买多少种商品, COUNT(t2.商品名) AS 累计该日期之前买多少个商品\nFROM test AS t1\nLEFT JOIN test AS t2 ON t1.会员名 = t2.会员名 AND t2.日期 <= t1.日期\nWHERE t1.付款方式 = '现金'\nGROUP BY t1.会员名, t1.日期\nORDER BY t1.会员名, t1.日期;\n\n该查询使用了两个表的自连接(self join),通过连接会员名和日期进行比较,从而计算出相应的统计结果。其中使用了 COUNT 和 DISTINCT 函数来计算种类数量和商品数量。\n\n注意:以上查询假设表中的日期字段是按照日期或时间的升序排列的。如果不是,请根据实际情况调整查询逻辑。
原文地址: https://www.cveoy.top/t/topic/pNbU 著作权归作者所有。请勿转载和采集!