Я поставил данных в Microsoft SQL, который выглядит такПотянуть дополнительные данные, кроме сгруппированных данных
ID Value1 Value2
1 8 4
1 4 2
1 9 3
1 3 1
2 4 9
2 5 7
2 6 4
2 7 5
2 1 1
Я пытаюсь вытащить только данные из соответствующей строки, содержащей максимальное значение в колонке 1, сгруппированных по Идентификационный номер. Результат должен быть следующим:
ID Value1 Value2
1 9 3
2 7 5
Следующее, что я пробовал, но безуспешно. Он работает, если Value2 удален.
USE [Database]
SELECT [ID],
MAX([Value1]) as Value1,
[Value2]
FROM [dbo].[Datatable]
GROUP BY [ID]
вы могли бы использовать row_number() функции (раздел по ID заказа по value1 убыв), а затем выбрать только где номер строки = 1 – ZLK
@ZLK Я довольно неопытный с SQL, не могли бы вы показать мне, как это будет выглядеть? – User247365
так что 'select id, value1, value2 from (select id, value1, value2, row_number() over (partition by id order by value1 desc) rn from datatable) t где rn = 1' – ZLK