选择排名最高的类别SQL

时间:2011-01-24 20:29:03

标签: sql search

我在SQL sproc中有一个临时表(用于搜索),列是ProductID,CategoryID和WeightRank。

从这张表中我需要获得具有最高WeightRank的CategoryID。 我很难弄清楚语法,任何帮助都会受到赞赏。

注意:临时表有许多具有相同CategoryID的产品,我需要找到每个唯一CategoryID的组合WeightRank并返回[最高排名] CategoryID。 (希望这有道理吗?)

2 个答案:

答案 0 :(得分:1)

select top 1 categoryID
from #t
group by categoryID
order by sum(WeightRank) desc

或者avg(WeightRank)

答案 1 :(得分:0)

标准SQL解决方案允许多个类别绑定最大

SELECT *
FROM 
table  t
INNER JOIN 
(
     SELECT
              SUM( WeightRank) weightRank, category_id 
    FROM 
       table t
    GROUP  by
       category_id 
) sumRank
ON t.category_id  = sumrank.category_id 
INNER JOIN 

SELECT  MAX(weightRank) weightRank
FROM (     
    SELECT
              SUM( WeightRank) weightRank, category_id 
    FROM 
       table t
    GROUP  by
       category_id 
) maxRank

ON sumRank.weightRank= maxRank.weightRank