172 похожих чатов

Добрый день! Подскажите пожалуйста по какой причине при использовании функции

CROSSTAB могут теряться строки?
Использую вот такой запрос.
SELECT *
FROM crosstab( $$
SELECT date,
interval,
appeal_id,
client_id,
phone,
group_name,
region,
marker,
val
FROM table
$$,
$$
VALUES ('1'), ('2') -- marker
$$) AS ct ( date date,
interval varchar,
appeal_id int,
client_id int,
phone varchar,
group_name varchar,
region varchar,
val1 text,
val2 text);
Первые 7 столбцов остаются как есть, на основе 8 столбца создаются 2 дополнительных столбца, куда должны попасть первое и второе значение из столбца val, но при кросстабе теряется огромное число строк.

2 ответов

10 просмотров
Kirill- Автор вопроса

Я живой пример накидал SELECT * FROM crosstab( $$ SELECT * FROM (VALUES ('Урал', 111, '2021-03-01'::date, 1, 'Текст 1'), ('Урал', 111, '2021-03-01', 2, 'Текст 2'), ('Урал', 222, '2021-03-01', 1, 'Текст 1'), --потеряно ('Центр', 333, '2021-03-02', 1, 'Текст 1'), ('Волга', 444, '2021-03-03', 1, 'Текст 1') ) AS t(mrf, id, dt, mark, message) $$, $$ VALUES ('1'), ('2') $$) AS ct( mrf varchar, id int, dt date, message1 text, message2 text); помогите пожалуйста разобраться, теряется 3 строка из исходных данных

Kirill- Автор вопроса
Kirill
Я живой пример накидал SELECT * FROM crossta...

Ааааа, я понял, потому что функция в качестве уникального ключа воспринимает только самый первый столбец, надо просто ID туда вынести и все будет работать

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта