Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Вопрос-Ответ Новый топик    Ответить
 Помогите !!  [new]
timbim
Member

Откуда:
Сообщений: 2
5 клиентов с максимальным ростом продаж по отношению к предыдущему дню.

Есть таблица table, с полями:
client – ид клиента,
data – дата,
sale – сумма продаж за день.
21 окт 20, 16:58    [22218352]     Ответить | Цитировать Сообщить модератору
 Re: Помогите !!  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
timbim,

Читать про lag/lead.
21 окт 20, 17:24    [22218376]     Ответить | Цитировать Сообщить модератору
 Re: Помогите !!  [new]
timbim
Member

Откуда:
Сообщений: 2
env, что думаете?

Select *
LAG (sale) OVER (ORDER BY sale DESC) as penult
LAST VALUE (sale) OVER (ORDER BY sale) as last
(last – punult) as difference

FROM table
Order by difference DESC
LIMIT 3
21 окт 20, 21:30    [22218581]     Ответить | Цитировать Сообщить модератору
 Re: Помогите !!  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20765
timbim
что думаете?
А чё тут думать? сплошной syntax error.

Ну и использование алиасов в выражениях, тем более алиасов выражений с оконными функциями - это вообще никуда.
21 окт 20, 22:37    [22218610]     Ответить | Цитировать Сообщить модератору
 Re: Помогите !!  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 9249
Зачем LAST_VALUE не понятно
Ну и да, сплошной синтакс еррор

Хотя в целом, направление верное )))

Akina

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

почему никуда?
Обернуть во внешний запрос и ладно. Всяко лучше / понятнее, чем целиком оконные ф-ции в разные выражениях Copy Past'ить

IMHO
22 окт 20, 10:15    [22218752]     Ответить | Цитировать Сообщить модератору
 Re: Помогите !!  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
timbim,

В общем-то всё уже сказали. last_value не нужен, по исходной постановке нужна разница текущего и предыдущего значений. Отдельный вопрос для уточнения, как корректно обрабатывать разрывы в днях продаж по клиенту. Ну и потерян partition by client_id в over, сейчас у вас окно по всем клиентам.
22 окт 20, 10:27    [22218759]     Ответить | Цитировать Сообщить модератору
Все форумы / Вопрос-Ответ Ответить