选择排名最高的类别SQL
问题描述:
我在SQL sproc(用于搜索)中有一个临时表,这些列是ProductID,CategoryID和WeightRank。选择排名最高的类别SQL
从这张表中我需要得到WeightRank最高的CategoryID。 我很努力地想法的语法,任何帮助将不胜感激。
注:临时表中有许多产品相同的类别ID,我需要找到每一个独特的类别ID组合WeightRank并返回刚刚[最高排名]类别ID。 (希望这是有道理?)
答
select top 1 categoryID
from #t
group by categoryID
order by sum(WeightRank) desc
也许avg(WeightRank)
?
+0
简单而正是我需要的,谢谢 – Leigh 2011-01-25 23:44:20
答
标准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
这是哪个DBMS的用途? SQL Server,MySQL,Oracle等? – RichardTheKiwi 2011-01-24 20:33:39