【问题标题】:How to find the maximum product id in customer wise category in sql?如何在sql中找到客户明智类别中的最大产品ID?
【发布时间】:2021-05-15 21:40:48
【问题描述】:

这里我有客户 ID 和最大订单数量,我如何获取最大订单数量的 productid 列以及 customerid 和 maxorderqty 列。

数据库:冒险作品
使用的表:salesorerheader、salesorderdetails

SELECT customerid,
       Max(totalqty)
FROM   (SELECT customerid,
               Sum(orderqty) AS Totalqty,
               productid     AS pdtid
        FROM   sales.salesorderheader a
               INNER JOIN sales.salesorderdetail b
                       ON a.salesorderid = b.salesorderid
        GROUP  BY customerid,
                  productid)A
WHERE  customerid = 29825
GROUP  BY customerid

【问题讨论】:

  • 嗨!由于您是新人,我想邀请您提供有关数据库的更多详细信息。如果您可以更完整地概述您的表格的外观,这将对贡献者有所帮助。提供一个最小的工作示例总是有帮助的,所以在这里举一个例子,当你用一些数据填充表格时,你的表格看起来如何是个好主意。由于您已经提供了一个您尝试过的查询,如果您添加查询当前产生的输出以及您期望它产生的输出将会很有帮助。

标签: sql sql-server group-by max


【解决方案1】:

如果您对查找单个记录感兴趣,可以使用以下内容:

SELECT TOP(1) CustomerID, max(totalqty) AS maxqty, pdtid
FROM
(
  SELECT customerid, Sum(orderqty) AS Totalqty, productid AS pdtid
  FROM   sales.salesorderheader a
    INNER JOIN sales.salesorderdetail b
      ON a.salesorderid = b.salesorderid
  GROUP  BY customerid, productid
) A
WHERE CustomerID=29825
GROUP BY CustomerID, pdtid
ORDER BY max(totalqty) DESC

但是...如果你想找到多个具有相同排名的记录,请使用:

SELECT *
FROM 
(
  SELECT RANK() OVER(ORDER BY max(totalqty) DESC) rnk, CustomerID, max(totalqty) AS maxqty, pdtid
  FROM
  (
    SELECT customerid, Sum(orderqty) AS Totalqty, productid AS pdtid
    FROM   sales.salesorderheader a
      INNER JOIN sales.salesorderdetail b
        ON a.salesorderid = b.salesorderid
    GROUP  BY customerid, productid
  ) A
  WHERE CustomerID=29825
  GROUP BY CustomerID, pdtid
) B
WHERE rnk = 1

db<>fiddle

另一种方法是再次“加入”航行详情;)

【讨论】:

  • 嘿,谢谢伙计,但我想要的是 maxorder 的相应产品 id,我已经为客户计算了 maxqty 但我想包括产品 id,如果我选择产品我需要使用 group by这会带来不同的结果,我能做些什么吗?
  • 对不起,你试过上面的查询吗?看来,你没有。看看这里:db<>fiddle。结果和你的完全一样,包含productid
猜你喜欢
  • 1970-01-01
  • 2021-10-08
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
  • 2017-05-26
  • 1970-01-01
  • 2016-03-20
  • 2022-12-03
相关资源
最近更新 更多