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

基于BigQuery实现按国家/月度的毛营收Top10产品类型统计

正确实现按国家/月度统计毛营收Top10产品类型的BigQuery SQL

核心实现逻辑

要实现每个国家/月度的毛营收Top10产品类型统计,需先按维度聚合计算营收,再用窗口函数对每个分组内的产品类型排名,最后筛选排名前10的记录。以下是可直接运行的BigQuery SQL:

WITH revenue_summary AS (
    -- 第一步:按月度、国家、产品类型聚合计算毛营收
    SELECT
        FORMAT_DATE("%Y-%m", t0.order_create_date) AS month,
        t0.site_country AS country,
        p0.product_type AS product_type,
        SUM(t0.item_sale_price) AS gross_revenue
    FROM `transactions` t0
    LEFT JOIN `products` p0 ON t0.item_id = p0.item_id
    GROUP BY month, country, product_type
),
ranked_products AS (
    -- 第二步:按月度+国家分组,对产品类型按营收降序排名
    SELECT
        *,
        -- 若允许并列营收的产品共享排名,用DENSE_RANK();若严格排序用ROW_NUMBER()
        RANK() OVER (PARTITION BY month, country ORDER BY gross_revenue DESC) AS revenue_rank
    FROM revenue_summary
)
-- 第三步:筛选每个分组内排名前10的记录
SELECT month, country, product_type, gross_revenue
FROM ranked_products
WHERE revenue_rank <= 10
ORDER BY month, country, revenue_rank;

原SQL问题分析

第一段SQL的明显错误

  • 未定义rn字段,直接在WHERE子句中使用rn <=10会触发语法错误;
  • 缺少GROUP BY子句,使用聚合函数SUM()时,所有非聚合字段必须出现在GROUP BY中;
  • LIMIT关键字后未指定具体数值,语法不完整。

针对第二段SQL的常见问题推测

虽然无法查看图片内容,但这类需求的常见错误包括:

  • 窗口函数的PARTITION BY未同时指定month和country,导致排名逻辑不是按国家/月度分组;
  • 先执行排名再进行营收聚合,导致统计结果错误;
  • 使用了错误的窗口函数类型(比如需要保留并列排名时误用ROW_NUMBER())。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:48:58