Выберите самую высокую категорию рейтинга SQL - PullRequest
1 голос
/ 24 января 2011

У меня есть временная таблица внутри SQL sproc (используется для поиска), столбцами являются ProductID, CategoryID и WeightRank.

Из этой таблицы мне нужно получить CategoryID с самым высоким WeightRank. Я изо всех сил пытаюсь понять синтаксис, любая помощь будет любезно оценена.

Примечание: во временной таблице есть много продуктов с одинаковым CategoryID, мне нужно найти объединенный WeightRank для каждого уникального CategoryID и вернуть только [ID] CategoryID с самым высоким рейтингом. (Надеюсь, это имеет смысл?)

Ответы [ 2 ]

1 голос
/ 24 января 2011
select top 1 categoryID
from #t
group by categoryID
order by sum(WeightRank) desc

или, может быть, avg(WeightRank)?

0 голосов
/ 24 января 2011

Стандартное решение 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...