我在SQL sproc中有一个临时表(用于搜索),列是ProductID,CategoryID和WeightRank。
从这张表中我需要获得具有最高WeightRank的CategoryID。 我很难弄清楚语法,任何帮助都会受到赞赏。
注意:临时表有许多具有相同CategoryID的产品,我需要找到每个唯一CategoryID的组合WeightRank并返回[最高排名] CategoryID。 (希望这有道理吗?)
答案 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