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

如何用T-SQL按LocationKey查询单日最高GrossSales日期及金额

按LocationKey查询单日最高GrossSales的解决方案

最简便的方法是使用窗口函数,通过ROW_NUMBER()或RANK()按门店分组后对销售额排序,筛选出每组的Top1记录。以下是完整脚本:

WITH daily_sales_summary AS (
    SELECT 
        DateKey,
        LocationKey,
        SUM(GrossSales) AS daily_gross_sales
    FROM 
        dataset
    GROUP BY 
        DateKey, LocationKey
),
ranked_sales AS (
    SELECT 
        *,
        ROW_NUMBER() OVER (PARTITION BY LocationKey ORDER BY daily_gross_sales DESC) AS sales_rank
    FROM 
        daily_sales_summary
)
SELECT 
    DateKey,
    LocationKey,
    daily_gross_sales
FROM 
    ranked_sales
WHERE 
    sales_rank = 1;

脚本说明:

  1. daily_sales_summary:先计算每个LocationKey(门店)每日的总销售额,和你最初的分组逻辑一致。
  2. ranked_sales:用ROW_NUMBER()窗口函数,按LocationKey分组,对每组内的daily_gross_sales降序排名,销售额最高的记录会被标记为sales_rank = 1。
    • 如果需要保留同一门店单日销售额并列最高的多条记录,可将ROW_NUMBER()替换为RANK()。
  3. 最后筛选出sales_rank = 1的记录,即可得到每个门店单日最高销售额的对应日期和金额。

你之前的第二个脚本问题在于,子查询取的是所有门店中的全局最高销售额,而非每个门店自身的最高值,因此只能返回一条全局最高记录,窗口函数则可以精准按门店分组处理需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 18:21:34