基于尝试菜系多样性的客户排名SQL查询需求
客户菜系尝试多样性的唯一排名SQL实现
需求说明
- 统计客户尝试的菜系多样性并生成唯一无重复、不跳号的排名
- 必须返回字段:
consumer_id、distinct_cuisines_tried、diversity_rank - 排名规则:菜系多样性最高的客户排第1,使用
ROW_NUMBER()实现唯一排名 - 结果排序逻辑:按
distinct_cuisines_tried降序、diversity_rank升序、consumer_id升序排序
字段说明
consumer_id:客户IDdistinct_cuisines_tried:客户尝试过的不同菜系数量diversity_rank:基于菜系多样性计算的唯一排名
实现代码
WITH CuisineDiversity AS ( SELECT consumer_id, COUNT(DISTINCT cuisine_id) AS distinct_cuisines_tried FROM orders GROUP BY consumer_id ), RankedCustomers AS ( SELECT consumer_id, distinct_cuisines_tried, ROW_NUMBER() OVER (ORDER BY distinct_cuisines_tried DESC) AS diversity_rank FROM CuisineDiversity ) SELECT consumer_id, distinct_cuisines_tried, diversity_rank FROM RankedCustomers ORDER BY distinct_cuisines_tried DESC, diversity_rank ASC, consumer_id ASC;
内容的提问来源于stack exchange,提问作者Sai SP
相关产品推荐
相关产品推荐

