SQL Server,如何使用分组依据获得基于最大其他列的顶部列?
我的原始数据:
DECLARE @TB TABLE (ID INT, APP VARCHAR(25), PRICE MONEY)
INSERT INTO @TB
VALUES
(1, 'Apple', 10),
(1, 'Banana', 30),
(1, 'Orange', 20),
(2, 'Apple', 20),
(2, 'Banana', 30),
(2, 'Orange', 40)
这就是我想要的:
说明:
TOP_APP =香蕉,因为MAX(PRICE)GROUP BY ID,
总计= 60,因为SUM(PRICE)GROUP BY ID。
您的问题充满了错误。根据我的假设,您想要的结果是
SELECT identity (int,1,1) as ID,
APP AS TOP_APP
,SUM(PRICE) AS TOTAL INTO #T
FROM @TB
GROUP BY APP
order by SUM(PRICE)
select * from #t
SELECT A.ID,A.App,A.SUM
FROM
(
select *,
SUM(Price) OVER(PARTITION BY ID) SUM,
ROW_NUMBER() OVER (PARTITION BY ID ORDER BY Price DESC) RN
from @tb
)A
WHERE RN = 1