Сортировка в SQL по новизне и по рейтингу
База данных Postgres 17. Есть таблица:
id | title | rating | created_at |
---|---|---|---|
1 | Name1 | 10 | 2025-02-01 |
2 | Name2 | 30 | 2025-02-02 |
3 | Name3 | 20 | 2025-02-03 |
4 | Name4 | 0 | 2025-02-20 |
Как составить SQL запрос чтобы ORDER BY был в зависимости от даты создания. Если разница даты от текущей меньше 10 дней, то чтобы сортировалось по дате, иначе сортировалось бы по рейтингу. Что-то типа такого:
CASE WHEN created_at >= '2025-02-14' THEN created_at ELSE rating END DESC
Результат должен быть:
- Name4
- Name2
- Name3
- Name1
Ну или как это можно сделать средствами Laravel
Источник: Stack Overflow на русском