Начало » Использование СУБД » Microsoft SQL Server » Sql запрос (помогите пожалуйста с запросом)
Sql запрос [сообщение #4910] |
Wed, 17 April 2024 10:09 |
keshahot
Сообщений: 3 Зарегистрирован: April 2024
|
Junior Member |
|
|
Есть таблица LastSignalHistory
SELECT [CustomerID]
,[MTUreceiver]
,[MTUsystem]
,[MTUaddress]
,[Arrival]
,[Reading]
,[PrevArrival]
,[PrevReading]
,[ts]
,[trueReading]
,[UtlFlg]
В таблице есть информация за 7 лет. Информация за каждый день для каждого CustomerID .
надо сделать выборку последней информации за каждый год для каждого CustomerID.
Заранее спасибо
[Обновления: Wed, 17 April 2024 10:09] Известить модератора
|
|
|
|
|
|
Re: Sql запрос [сообщение #4914 является ответом на сообщение #4913] |
Wed, 17 April 2024 12:08 |
keshahot
Сообщений: 3 Зарегистрирован: April 2024
|
Junior Member |
|
|
Спасибо за ответ . Сделал такой скрипт . Работает
SELECT [Year], [CustomerID], [Arrival], [Reading]
FROM (
SELECT
YEAR(Arrival) AS [Year],
[CustomerID],
MAX(Arrival) OVER (PARTITION BY YEAR(Arrival), [CustomerID]) AS [Arrival],
MAX(Reading) OVER (PARTITION BY YEAR(Arrival), [CustomerID]) AS [Reading],
ROW_NUMBER() OVER (PARTITION BY YEAR(Arrival), [CustomerID] ORDER BY Arrival DESC) AS RowNum
FROM [MCM_Archive].[dbo].[LastSignalHistory]
WHERE YEAR(Arrival) BETWEEN 2012 AND 2020
) AS Subquery
WHERE RowNum = 1
ORDER BY [CustomerID], [Year];
|
|
|
Переход к форуму:
Текущее время: Thu Nov 21 18:06:22 GMT+3 2024
Общее время, затраченное на создание страницы: 0.01072 секунд
|