You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用SQL实现按年度销售额筛选Top3品牌并展示其季度数据

多品类年度Top3品牌季度销售数据SQL实现方案

核心思路

先通过窗口函数计算每个品类下各品牌的年度销售额排名,筛选出年度Top3,再关联回原始表提取对应品牌的分季度数据,最后按要求排序。

具体SQL实现

假设数据表名为alcohol_sales,字段对应Year(年份)、Quarter(季度)、Type(品类)、Brand(品牌)、Sales(销售额),代码如下:

WITH top3_brands AS (
    SELECT 
        Year,
        Type,
        Brand,
        SUM(Sales) AS annual_sales,
        -- 按年份+品类分组,对年度销售额降序排名
        RANK() OVER (PARTITION BY Year, Type ORDER BY SUM(Sales) DESC) AS brand_rank
    FROM alcohol_sales
    GROUP BY Year, Type, Brand
    HAVING brand_rank <= 3
)
-- 关联原始表获取目标季度数据
SELECT 
    s.Year,
    s.Quarter,
    s.Type,
    s.Brand,
    s.Sales
FROM alcohol_sales s
INNER JOIN top3_brands t
    ON s.Year = t.Year 
    AND s.Type = t.Type 
    AND s.Brand = t.Brand
-- 按品类、年份、季度排序,同季度内按销售额降序
ORDER BY s.Type, s.Year, s.Quarter, s.Sales DESC;

关键细节说明

  • 排名函数选择:用RANK()会保留销售额并列的Top3品牌(比如两个品牌同排第3,都会被纳入);如果需要严格取3个不同的品牌,改用ROW_NUMBER(),但会忽略并列情况,根据业务需求调整。
  • 多品类适配:通过PARTITION BY Year, Type实现按年份+品类独立计算排名,无需指定具体品类或品牌,自动适配所有品类。
  • 关联逻辑:通过年份、品类、品牌三个维度关联,确保只提取Top3品牌的对应季度数据,排除非目标品牌。

内容的提问来源于stack exchange,提问作者Ying W

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 03:52:59