首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在sql中找到客户分类中的最大产品id?

如何在sql中找到客户分类中的最大产品id?
EN

Stack Overflow用户
提问于 2021-02-12 05:27:20
回答 1查看 107关注 0票数 0

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

数据库:冒险工程

使用的表:salesorerheader、salesorderdetails

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-12 07:24:11

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

代码语言:javascript
复制
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

但是..。如果要查找几个级别相同的记录,请使用以下命令:

代码语言:javascript
复制
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

另一种方法是再次“加入”sailes细节;)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66166753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档