Таблица сортировки по количеству посещений и взвешенная по дате и времени - PullRequest
0 голосов
/ 02 мая 2020

Я хочу отсортировать таблицу SQL Server в следующем порядке:

  1. Сначала приходят самые посещаемые записи, вставленные за последние семь дней
  2. Затем все записи, которые вставляется до того, как за последние семь дней пришло число посещений des c.

Образцы данных:

Id | Title | CreatedOn   | VisitCount
1  | One   | 2020-04-20  | 51
2  | Two   | 2020-04-22  | 101
3  | Three | 2020-04-25  | 30
4  | Four  | 2020-04-27  | 25
5  | Five  | 2020-04-29  | 30
6  | Six   | 2020-04-30  | 42
7  | Seven | 2020-05-01  | 15

Ожидаемый результат при предположении, что текущим днем ​​является 2020-05 -02

Id | Title | CreatedOn   | VisitCount
6  | Six   | 2020-04-30  | 42
5  | Five  | 2020-04-29  | 30
7  | Seven | 2020-05-01  | 15
2  | Two   | 2020-04-22  | 101
1  | One   | 2020-04-20  | 51
3  | Three | 2020-04-25  | 30
4  | Four  | 2020-04-27  | 25

Как мне выполнить этот запрос

SELECT Id, Title, CreatedOn, VisitCount FROM Posts
ORDER BY .........

1 Ответ

1 голос
/ 02 мая 2020

Используйте двухуровневый порядок по пункту:

SELECT Id, Title, CreatedOn, VisitCount
FROM Posts
ORDER BY
    CASE WHEN DATEDIFF(day, CreatedOn, GETDATE()) < 7 THEN 0 ELSE 1 END,
    VisitCount DESC;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...