как захватить максимум общих столбцов с разделом в sql

90
6

У меня эти чипы для таблицы:

enter image description here

im ищет, чтобы найти максимальный для каждого ID, но использование кода im не является правильным, мне нужна новая таблица

enter image description here

  select * 
from
(
max (numchips) over (partition by Id)
from @chips
)

спросил(а) 2015-05-28T17:06:00+03:00 5 лет, 4 месяца назад
1
Решение
58

Вы можете использовать ROW_NUMBER:

 SELECT Id, numchips 
FROM (
SELECT Id, numchips,
ROW_NUMBER() OVER (PARTITION BY Id
ORDER BY numchips DESC) as rn
FROM @chips
) t
WHERE rn = 1

rn равно 1 для записи с самым высоким значением numchips в каждом разделе Id.

Использование ROW_NUMBER() имеет смысл, только если у вас есть дополнительные столбцы в таблице Chips которые вы также хотите получить.

ответил(а) 2015-05-28T17:08:00+03:00 5 лет, 4 месяца назад
59

Почему вы не можете просто сделать?:

SELECT 
MAX(c.numchips),
c.Id
FROM
@chips as c
GROUP BY
c.Id

ответил(а) 2015-05-28T17:10:00+03:00 5 лет, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема