У меня есть такая таблица (user_id
- это int
, а visited_at
- это date
):
user_id | visited_at
---------+------------
2 | 2020-01-14
1 | 2020-01-14
2 | 2020-01-13
1 | 2020-01-12
Я хочу создать такую таблицу:
user_id | 2020-01-12 | 2020-01-13 | 2020-01-14|
--------+------------+------------+------------
1 | Y | | Y |
2 | | Y | Y |
Вот пример фиктивного кода:
CREATE temporary TABLE tbl (
user_id int
, visited_at date
);
INSERT INTO tbl VALUES
('2', '2020-01-14'),
('1', '2020-01-14'),
('2', '2020-01-13'),
('1', '2020-01-12');
Я бы хотел, чтобы столбцы были последними 30 днями (например), но без необходимости вводить их все. Я не знаю, означает ли это, что я не могу использовать crosstab
. Фактические значения присутствия / отсутствия могут быть любыми (Y, TRUE и т. Д. c.)
Существует ли прямой способ сделать это?