it:postgresql:sql
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
it:postgresql:sql [2022/11/25 10:55] – ura2404 | it:postgresql:sql [2023/04/16 11:20] (текущий) – ura2404 | ||
---|---|---|---|
Строка 10: | Строка 10: | ||
end | end | ||
</ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Заполнить таблицу миллионом строк ==== | ||
+ | <code sql> | ||
+ | CREATE TABLE foo (c1 integer, c2 text); | ||
+ | INSERT INTO foo | ||
+ | SELECT i, md5(random():: | ||
+ | FROM generate_series(1, | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Удалить дубликаты ==== | ||
+ | <code sql> | ||
+ | DELETE FROM wgdump.dump WHERE ctid NOT IN ( | ||
+ | SELECT max(ctid) FROM wgdump.dump GROUP BY ts | ||
+ | ); | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Пример рандома ==== | ||
+ | <code sql> | ||
+ | --explain ANALYZE | ||
+ | WITH | ||
+ | temperature AS ( | ||
+ | SELECT ts + (INTERVAL '60 minutes' | ||
+ | FROM generate_series(' | ||
+ | ' | ||
+ | | ||
+ | ), | ||
+ | humidity AS ( | ||
+ | SELECT ts + (INTERVAL '60 minutes' | ||
+ | FROM generate_series(' | ||
+ | ' | ||
+ | | ||
+ | ) | ||
+ | SELECT t.ts, t.city, t.temperature, | ||
+ | FROM temperature AS t | ||
+ | LEFT JOIN LATERAL | ||
+ | ( SELECT * FROM humidity | ||
+ | WHERE city = t.city AND ts <= t.ts | ||
+ | ORDER BY ts DESC LIMIT 1 | ||
+ | ) AS h ON TRUE | ||
+ | --WHERE t.ts < ' | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ==== Колво дней в месяце ==== | ||
+ | SELECT | ||
+ | ts.day:: | ||
+ | , | ||
+ | FROM | ||
+ | | ||
it/postgresql/sql.1669373703.txt.gz · Последнее изменение: 2022/11/25 10:55 — ura2404