Size: a a a

pgsql – PostgreSQL

2021 March 05

SG

Sergey Gr in pgsql – PostgreSQL
У pgbench (или postgres) в целом нет возможности on-connect выполнить некий SQL прежде чем переходить к содержательной части?
источник

DS

Daniella Starchenko in pgsql – PostgreSQL
Помогите с запросом. Нужно удалить топ 100 таблиц вместе и их данными, которые я вижу в pg_tables. Как это автоматизировать?
источник

kp

krn p in pgsql – PostgreSQL
гайз, а я верно понял, что
select *, count(*) over() as total  from tbl limit 2
тут функция over отработает как надо и посчитает мне все ряды, несмотря на лимит?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Daniella Starchenko
Помогите с запросом. Нужно удалить топ 100 таблиц вместе и их данными, которые я вижу в pg_tables. Как это автоматизировать?
SELECT format($$ DROP TABLE %s;$$, oid::regclass) FROM pg_class WHERE relkind='r' ORDER BY pg_relation_size(oid) DESC LIMIT 100\gexec

%s потому, что oid::regclass может дать не просто имя таблицы, а имя со схемой.
источник

AM

Alexey Markovski in pgsql – PostgreSQL
Всем привет. Как правильно выстроить запрос, чтоб в итоге у меня получилась дата - кол-во щелчков? И чтоб считало за сутки. Когда я пише после селекта time_clicked, то дает ошибку
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Alexey Markovski
Всем привет. Как правильно выстроить запрос, чтоб в итоге у меня получилась дата - кол-во щелчков? И чтоб считало за сутки. Когда я пише после селекта time_clicked, то дает ошибку
GROUP BY time_clicked::date ?
источник

AM

Alexey Markovski in pgsql – PostgreSQL
Victor Yegorov
GROUP BY time_clicked::date ?
Зашло, запомню. Спасибо!)
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Alexey Markovski
Зашло, запомню. Спасибо!)
в вашем варианте надо было не вытаскивать день месяца из даты ( date_part ), а обрезать timestamptz до суток, т.е. date_trunc('day', time_clicked)
источник

AM

Alexey Markovski in pgsql – PostgreSQL
Victor Yegorov
в вашем варианте надо было не вытаскивать день месяца из даты ( date_part ), а обрезать timestamptz до суток, т.е. date_trunc('day', time_clicked)
Такой вариант подошел даже еще лучше!)
источник

SS

Shamil Sabirov in pgsql – PostgreSQL
а если time_clicked не timestamptz? а timestamp?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Shamil Sabirov
а если time_clicked не timestamptz? а timestamp?
точно также
источник

SS

Shamil Sabirov in pgsql – PostgreSQL
так то да. но время же разное может быть
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Shamil Sabirov
так то да. но время же разное может быть
эм… и что? у вас есть возможность отбросить часы, оставив дату.
тот факт, что вы храните метки времени без зоны — это ваш выбор.

если нужны какие-то рассчёты и/или преобразования — сделайте, потом возьмите дату от результата
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Shamil Sabirov
так то да. но время же разное может быть
При использовании timestamptz вы получаете ответ во временной зоне сессии, а при timestamp — неизвестно в какой, но остаётся только дата, да.
источник

SS

Shamil Sabirov in pgsql – PostgreSQL
Victor Yegorov
эм… и что? у вас есть возможность отбросить часы, оставив дату.
тот факт, что вы храните метки времени без зоны — это ваш выбор.

если нужны какие-то рассчёты и/или преобразования — сделайте, потом возьмите дату от результата
нельзя просто время отбросить. разница есть. есть часовые пояса. и там где сейчас уже сегодня - гдето еще вчера.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Shamil Sabirov
нельзя просто время отбросить. разница есть. есть часовые пояса. и там где сейчас уже сегодня - гдето еще вчера.
а как это понять по timestamp полю-то?
источник

SS

Shamil Sabirov in pgsql – PostgreSQL
Victor Yegorov
а как это понять по timestamp полю-то?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
коллега, я в курсе! я не понимаю, что вы мне пытаетесь сказать? есть поле timestamp, в котором нету информации о временной зоне.

у меня нет объективной возможности ответить в какой зоне то время, которое там записано.
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Sergey Gr
У pgbench (или postgres) в целом нет возможности on-connect выполнить некий SQL прежде чем переходить к содержательной части?
pgbench позволяет писать кастомные сценарии и запускать их через -f ключ. или вам нужно чтото одноразовое сделать в начале теста?
источник

D

Dmitriy in pgsql – PostgreSQL
Чудеса
Есть апдейт
Есть условие
Where id in (подзапрос)

Подзапрос отлетает за миллисекунду и не возвращает строк

Апдейт висит 5 минут, где магия? Таблицу ничего не блокирует
Update без условия отрабатывает за миллисекунды
источник