Вопрос обновлен !!
У меня есть база данных, в которой хранится обновление предмета клиента. У меня есть DateTime и обновленный уровень. Когда клиент обновляет элемент в день 1 и снова в день 5, я не вижу никакой информации между Днем 1-Днем 5
Пример данных: (таблица обновлений)
day customer items levels
01/01/2019 a item1 0
01/01/2019 b item1 0
02/01/2019 a item1 1
03/01/2019 b item1 1
04/01/2019 a item1 2
05/01/2019 b item1 2
05/01/2019 c item1 0
06/01/2019 b item1 3
07/01/2019 d item2 0
08/01/2019 NULL NULL NULL
09/01/2019 b item1 4
10/01/2019 NULL NULL NULL
11/10/2019 b item1 5
11/10/2019 a item1 3
11/10/2019 a item1 4
Пример данных: (ежедневная таблицадля пользователя)
day time-spent
01/01/2019 11
02/01/2019 34
03/01/2019 56
04/01/2019 78
11/01/2019 3
14/01/2019 13
22/01/2019 30
Моя задача - найти общее количество предметов для каждого уровня, так что Level 0
item-1
у меня в день:
01/01/2019 2
02/01/2019 1
03/01/2019 0
04/01/2019 0
05/01/2019 1
06/01/2019 1
07/01/2019 1
08/01/2019 1
09/01/2019 1
10/01/2019 1
11/10/2019 1
Какмного Level 1
предмет-1 у меня в день?
01/01/2019 0
02/01/2019 1
03/01/2019 2
04/01/2019 1
05/01/2019 0
06/01/2019 0
07/01/2019 0
08/01/2019 0
09/01/2019 0
10/01/2019 0
11/10/2019 0
за все двадцать уровней на предмет! (Мне нужно найти уровень распределения предметов!)
Что я пробовал это:
SELECT *
FROM (
SELECT date(timestamp) day,
user_id,
item_id,
level,
-- Left join the daily table and get last value of an item per customers
last_value(level) IGNORE NULLS OVER (PARTITION BY user_id ORDER BY day
ROWS UNBOUNDED PRECEDING ) level_r
FROM daily d -- I have a calendar dates from and all customers in this table
LEFT JOIN (
SELECT user_id,
date(TIMESTAMP) t,
item_id,
level,
RANK()
OVER (PARTITION BY user_id,date(timestamp), item_id ORDER BY TIMESTAMP DESC ) transaction_rank
FROM updated
WHERE item_id
) u ON u.user_id = d.user_id AND u.t = d.day AND transaction_rank = 1
GROUP BY
1, 2, 3, 4)
, но проблема в том, что он работает, если у меня есть один клиент из-за нулевых значений, но еслиу вас есть несколько клиентов, это не работает.
Как я могу найти распределение уровней для предметов?
РЕДАКТИРОВАТЬ: Я хотел бы добавить больше информации, чтобы сделать более понятным. Если никто не меняет уровень своего предмета в предыдущий день, мне нужно знать также и следующий день.
Мне нужно знать, сколько уровней предмета у меня есть от любой выбранной даты до предыдущего целого времени
РЕДАКТИРОВАТЬ-2: Мне не нужно присоединяться к таблице обновления до ежедневного. Мне нужно, чтобы все значения таблицы обновлений приводили в типе generate_series, но когда я создаю Generate Seres, у меня появляется ошибка