Порядок по убыванию и продолжить с тем же набором группы - PullRequest
0 голосов
/ 15 октября 2018

Я хочу записи в порядке убывания DATE и продолжаю с тем же набором группы, т.е. здесь МАКСИМАЛЬНАЯ дата равна 2018-10-25 00:00:00.000, тогда следующие 3 записи должны иметь REC = 5

REC DATE
===========================
1   2018-01-02 00:00:00.000
1   2018-01-03 00:00:00.000
1   2018-01-04 00:00:00.000
2   2018-06-01 00:00:00.000
2   2018-06-02 00:00:00.000
3   2018-03-01 00:00:00.000
3   2018-05-02 00:00:00.000
3   2018-01-03 00:00:00.000
3   2018-08-04 00:00:00.000
3   2018-10-05 00:00:00.000
4   2018-10-06 00:00:00.000
5   2018-10-25 00:00:00.000
5   2018-05-03 00:00:00.000
5   2018-09-09 00:00:00.000

Это то, что я пытался, но безуспешно.

SELECT t1.REC, t1.DATE
FROM TEMP AS t1
INNER JOIN (SELECT REC, MAX(DATE) AS MaxDate
            FROM TEMP
            GROUP BY REC) AS t2
ON (t1.REC = t2.REC AND t1.DATE = t2.MaxDate)

Ожидаемый результат должен выглядеть примерно так:

REC DATE
===============================
5   2018-10-25 00:00:00.000
    ..........{Remaining dates of `REC` 5}
4   2018-10-06 00:00:00.000
    ..........{Remaining dates of `REC` 4}
3   2018-10-05 00:00:00.000
    ..........{Remaining dates of `REC` 3}
2   2018-06-02 00:00:00.000
    ..........{Remaining dates of `REC` 2}
1   2018-01-04 00:00:00.000
    ..........{Remaining dates of `REC` 1}

1 Ответ

0 голосов
/ 15 октября 2018

max_date - максимальная дата для каждой записи

SELECT  *, max_date = MAX(DATE) OVER (PARTITION BY REC)
FROM    yourtable
ORDER BY max_date DESC, DATE DESC
...