SQL Запрос к серверу для получения данных из группы - PullRequest
0 голосов
/ 31 января 2020

У меня есть данные ниже и из выделенных групп я хочу извлечь минимальную дату / время (выделенные серым цветом строки) из каждой группы, но данные во всех столбцах одинаковы, кроме даты. Я использовал минимальный агрегат, но мне не хватает строки 2019-09-28-12.31.47.653829. Не уверен, как получить все 3 строки из группы. Пожалуйста, помогите мне Спасибо

1 Ответ

1 голос
/ 31 января 2020

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

Вот один из способов ее решения с использованием row_number() и агрегации :

select 
    id, 
    division, 
    sub_div, 
    status, 
    queue,
    min(event_dattim) min_event_dattim
from (
    select 
        t.*,
        row_number() over(order by event_dattim) rn1,
        row_number() over(
            partition by id, division, sub_div, status, queue
            order by event_dattim
        ) rn2
    from mytable t
) t
group by 
    id, 
    division, 
    sub_div, 
    status, 
    queue, 
    rn1 - rn2
...