我在SQL sproc(用於搜索)中有一個臨時表,這些列是ProductID,CategoryID和WeightRank。選擇排名最高的類別SQL
從這張表中我需要得到WeightRank最高的CategoryID。 我很努力地想法的語法,任何幫助將不勝感激。
注:臨時表中有許多產品相同的類別ID,我需要找到每一個獨特的類別ID組合WeightRank並返回剛剛[最高排名]類別ID。 (希望這是有道理?)
我在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)
?
簡單而正是我需要的,謝謝 – 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