【SQL】оператор PostgreSQL

В последнее время PostgreSQL использовался для выполнения большого объема работы по обработке данных, и теперь я разберу используемые операторы SQL.

создать базу данных

СОЗДАТЬ БАЗУ ДАННЫХ имя_таблицы;

создать форму

CREATE имя_таблицы, ЕСЛИ НЕ СУЩЕСТВУЕТ {} (метка времени, целое число данных)

вставить данные

вставить в table_name значения (%s, %s);

выбрать данные

ВЫБЕРИТЕ время, данные ИЗ table_name

Несколько таблиц не удаляют повторяющиеся ассоциации

ВЫБЕРИТЕ * ИЗ таблицы1СОЮЗ ВСЕХSELECT * FROM table2
UNION — это ассоциация «верхний-нижний», которая объединяет данные нескольких таблиц и делится на объединение UNION с дедупликацией и объединение UNION ALL без дедупликации.

Объединение нескольких таблиц и фильтрация

ВЫБИРАТЬвремя, данныеОТТаблица 1ПРИСОЕДИНИТЬСЯТаблица 2НАтаблица1.id=таблица2.idГДЕtable1.code в ('999')

соединение - это ассоциация лево-право, связанная с левым и правым полным и т. д., это правило соединения,
где является условным оператором

Преобразование типа столбца

alter TABLE table_name alter COLUMN col_name type int с использованием col_name::int
преобразует тип столбца col_name в таблице table_name в int

NULL заполнен 0

update table_name set col_name=coalesce(col_name, 0)
заполняет NULL в столбце col_name в таблице table_name с 0

равноудаленное деление времени

ВЫБЕРИТЕ date_trunc('час', время) + ИНТЕРВАЛ '2 минуты' * (пол(извлечение('минута' из времени) / 2)) AS time_slot,sum(data) FROM table_name GROUP BY time_slot ORDER BY time_slot; table table_name
Согласно в столбец времени, группировать и суммировать каждые 2 минуты и сортировать по времени

формат изменения времени

to_char(время, 'ГГГГ-ММ-ДД ЧЧ24:МИ:00')::TIMESTAMP
после ::TIMESTAMP является необязательным, в соответствии с унифицированным форматом различных данных времени

создать временную метку (последовательность)

При слиянии нескольких таблиц обычно необходимо учитывать отсутствие данных, поэтому мы должны вручную установить стандартный столбец времени, чтобы отсутствующие строки данных также отображались, а не отображались из-за отсутствия данных.
ВЫБЕРИТЕ '2023-06-09 08:00:00'::timestamp КАК время
SELECT generate_series('2023-01-01 08:00'::timestamp, '2023-01-01 21:00'::timestamp, ' 10 минут'::интервал) Отметка времени AS;

Supongo que te gusta

Origin blog.csdn.net/qq_43166192/article/details/130934056
Recomendado
Clasificación