按文件类型划分的订单总数

问题描述 投票:0回答:1

我们有如下客户订单表;

SELECT  [pk]
     ,[FileName]
     ,[Order_No]
     ,[SKU]
     ,[Qty]
FROM [Data].[dbo].[client]`

我是 SQL 新手,我被要求按文件名显示 1 个 sku 的订单数,然后显示 2 个 sku 的订单数,然后显示 3 个 sku 的订单数,等等

像下面这样

在此输入图片描述

我一直在玩,但我不知道如何可视化它。

我已经尝试过以下方法;

SELECT        [FileName]
        ,Order_no
        ,COUNT(SKU) as 'Total SKU'
        ,SUM(Qty) as 'Qty Total'
FROM [Warehouse].[dbo].[client] 
GROUP BY Order_no, [FileName]
HAVING COUNT(SKU) = 1 AND SUM(Qty) = 1
ORDER BY Order_no

但它仅适用于 1 个 SKU - 我不确定如何构建查询来显示 SKU 数量的总订单。我考虑过使用临时表,但我再次无法想象这会有什么帮助。

sql count sum
1个回答
0
投票

如果没有适当的样本数据和预期结果,很难说,但我认为这里需要两个级别的聚合。

SELECT
  c.FileName,
  c.DistinctSkus,
  COUNT(*) AS NumOrders,
  SUM(c.QtyTotal) AS QtyTotal
FROM (
    SELECT
      COUNT(DISTINCT c.SKU) AS DistinctSkus,
      SUM(c.Qty) AS QtyTotal
    FROM dbo.client c
    GROUP BY
      c.FileName,
      c.Order_no
) c
GROUP BY
  c.FileName,
  c.DistinctSkus;
© www.soinside.com 2019 - 2024. All rights reserved.