SQL语句如下:
SELECT date, customer FROM ( SELECT date, customer, RANK() OVER (PARTITION BY date ORDER BY COUNT(*) DESC) AS rank FROM purchases GROUP BY date, customer ) AS t WHERE t.rank = 1;
解释:首先使用一个子查询来计算每个日期和每个客户的购买次数,使用RANK()函数来排名,PARTITION BY用来指定日期分组,ORDER BY COUNT(*) DESC用来计算购买次数最多的客户。然后在外部查询中筛选出每个日期中排名为1的客户,即购买次数最多的客户。
下一篇:按日期分组找出排序顺序