SQL Получить минимальный час из нескольких регистров datetime - PullRequest
0 голосов
/ 06 июля 2018

Мне нужно отобразить столбец INFO, имея минимальный час для каждой даты в столбце РЕГИСТРАЦИЯ, один для LOG

Log CAT   INFO       REGISTRATION
10  1   551203  2018-06-04 08:47:54.000
10  1   551549  2018-06-05 08:59:02.000
579 1   551675  2018-06-05 10:13:36.000
579 1   553681  2018-06-05 11:31:44.000
579 1   551707  2018-06-05 12:57:33.000
579 1   551364  2018-06-04 10:16:04.000
579 1   551378  2018-06-04 10:39:01.000
579 1   551379  2018-06-04 10:40:22.000
579 1   551406  2018-06-04 15:47:52.000
580 1   550922  2018-06-04 11:21:01.000
580 1   551001  2018-06-04 12:43:22.000
580 1   553321  2018-06-04 15:37:52.000

именно так, где каждая ИНФОРМАЦИЯ - это минимальный час каждой даты каждого журнала

INFO
551203       -->(2018-06-04 08:47:54.000)        
551675       -->(2018-06-05 10:13:36.000)   
551364       -->(2018-06-04 10:16:04.000)   
550922       -->(2018-06-04 11:21:01.000)   

спасибо !!

1 Ответ

0 голосов
/ 06 июля 2018

Если предположить, что информационные значения появляются в возрастающем порядке, то я считаю, что это то, что вы ищете:

select min(info) as info, min(registration) as registration
from log
group by log, cast(registration as date);

Или просто используйте row_number(), чтобы избежать такого предположения:

with data as (
    select *,
        row_number() over 
            (partition by log, cast(registration as date) order by registration) as rn
    from log
)
select * from data where rn = 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...