我不知道为什么我的上一个话题被标记了!!! ???
这就是我所做的一切。我想不出别的什么。
我已经完成了很多事情,在我的问题部分中说明了这一点。为了简化,我做了名字A,B,C,...... 我不给你我的家庭作业。
我的问题:
答案 0 :(得分:1)
这是一个用于解决问题的SqlServer 2008的SQL。
with data as (select name, count(*) as occurrence, sum(value) as sumvalue from mytab group by name)
select * from data where
occurrence=(select max(occurrence) from data)
and sumvalue=(select max(sumvalue) from data data2 where data2.occurrence=data.occurrence)
在数据中收集所需的值(总和和计数)。现在我们选择具有最大值的行并过滤掉具有最大值的行。
答案 1 :(得分:0)
SELECT [Name], [Value]
FROM (
SELECT *, RANK() OVER(ORDER BY [Count] DESC, Value DESC) [rn]
FROM (
SELECT [Name], SUM(Value) [Value], COUNT(1) [Count]
FROM MyTable
GROUP BY Name
) t
) t
WHERE rn = 1
或更简单
SELECT TOP 1 WITH TIES [Name], [Value]
FROM (
SELECT [Name], SUM(Value) [Value], COUNT(1) [Count]
FROM MyTable
GROUP BY Name
) t
ORDER BY [Count] DESC, Value DESC