在这里,我有客户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发布于 2021-02-12 07:24:11
如果您对查找单个记录感兴趣,可以使用以下内容:
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另一种方法是再次“加入”sailes细节;)
https://stackoverflow.com/questions/66166753
复制相似问题