
Let Eat
02.10.2018
09:28:12
Какие типы нужны чтобы сравнивать пару значений, как это сделано внутри многоколоночного индекса? Есть индекс по двум колонкам A,B, он используется при order by A,B. Не могу сообразить, что мне написать в WHERE xxx > yyy что бы продвинутся по этому индексу на нужное место (да это про пагинацию без offset limit)

Yaroslav
02.10.2018
09:38:28

Let Eat
02.10.2018
09:53:58

Google

Yaroslav
02.10.2018
09:57:31
Ого, именно это и пытаюсь сделать :) как вот эти скобочки называются? tuple? record? :)
’select * from t where (t,id) > (select (t, id) from t order by t, id limit 1) order by t, id’ ругается на сравнение вот только
Это row constructor (Вы правильно нашли), а скобки там лишние:
select * from t where (t,id) > (select t, id from t order by t, id limit 1) order by t, id
Но при pagination Вы их просто сохраняете, затем используете, нет?
Т.е. зачем там подзапрос?

Let Eat
02.10.2018
10:00:38

И•л•ь•д•а•р ☕
02.10.2018
10:03:09
подскажите как сделать так чтобы пользователь не видел базы кроме тех в которой он owner

Yaroslav
02.10.2018
10:06:56

И•л•ь•д•а•р ☕
02.10.2018
10:08:29

Alex
02.10.2018
10:09:44

Yaroslav
02.10.2018
10:14:27


?????
02.10.2018
10:15:42
Привет уважаемым базданщикам и не только!
Питерская биржа рекламы (МедиаТех) ищет опытного DB-разработчка в нашу весёлую scrum-команду.
Что хотим от кандидата:
Работа *Nix на уровне пользователя;
Работа с Docker;
Опыт создания функций и процедур внутри реляционных СУБД (мы используем Postgres);
Опыт работы с CVS (мы используем Git);
Опыт работы с NoSQL (мы используем Redis, Scylla);
Навыки командной работы;
Уровень английского, достаточный для чтения технической документации;
Способность концентрировать внимание в условиях многозадачности
Бонусом будет:
Опыт работы с системой мониторинга Prometheus;
Опыт администрирования PostgreSQL
Почему мы классные:
Можно работать в крупной компании, где свято верят в дух стартапа;
Можно принимать решения в разработке продукта, а не просто работать по ТЗ;
Можно попробовать новые софты и технологии, которые остальные боятся использовать в продакшене;
Если любишь изменения, а не спокойно сидеть в углу -- это здорово, потому что мы постоянно меняем как процессы так и технологии в нашей работе;
Сможешь пробовать себя в разных сферах разработки
Что готовы дать взамен:
Стабильная заработная плата (135к-150к на руки), перспектива роста;
Условия для развития: оплата конференций и тренингов, учебных материалов и курсов;
Постоянная работа в комфортном офисе в бизнес центре А-класса в 5 минутах ходьбы от м. Горьковская;
Гибкий график работы: всегда можно договориться, когда приходить и когда уходить;
ДМС, корпоративный английский;
Кофе, печеньки, йогурты, настольный футбол, корпоративные спортивные и анти-спортивные мероприятия;
Оформление по ТК РФ.
#вакансия #cпб
друзья-товарищи, позвольте, пожалуйста, копирнуть вакансию и сообщить, что мы готовы предложить реферальный бонус, если кто-нибудь из присутствующих сможет хотя бы порекомендовать хорошего DB-разработчика в СПб, который пройдёт у нас испытательный срок в 1 месяц.
помогите, кто чем может... ?


Demuz
02.10.2018
10:18:15

Sergey
02.10.2018
10:19:12
localhost и 127.0.0.1 это не одно и то же
psql -h 127.0.0.1

Google

Demuz
02.10.2018
10:20:25

Sergey
02.10.2018
10:20:49
а выше есть какие нибудь записи?

Demuz
02.10.2018
10:22:15

Boris
02.10.2018
10:23:10
sudo -u postgres psql
# \password postgres

Sergey
02.10.2018
10:23:15
вот оно попадает в те что выше и дальше не проверяется. переставьте свои записи на самый верх и релоад

Lestat -
02.10.2018
10:24:11
su - postgres
psql

Demuz
02.10.2018
10:24:31

Sergey
02.10.2018
10:25:16
You are welcome!

Dmitriy
02.10.2018
10:25:46
Кто работает с Informatica?

Demuz
02.10.2018
10:26:06

Sergey
02.10.2018
10:28:02
-h localhost - попадет в запись local
-h 127.0.0.1 - попадает в host

Mikhail
02.10.2018
11:17:13

Eugene
02.10.2018
11:47:45
как-то странно работает jsonb_set
SELECT jsonb_set('{"a": 1, "b": 2}', '{a}', NULL) весь объект обнуляет
задать null для ключа "a" можно так SELECT jsonb_set('{"a": 1, "b": 2}', '{a}', 'null')

Terminator
02.10.2018
11:52:05
@lp_rostik будет жить. Поприветствуем!

Yaroslav
02.10.2018
11:59:03

Alexander
02.10.2018
12:11:41
В чём вопрос?

Alexey
02.10.2018
12:58:03
Ребят, как получить только те строчки из таблицы, которые имеют максимальные timestamp?

Google

Denis
02.10.2018
12:59:54
а на timestamp есть индекс?
SELECT * FROM table WHERE timestamp = (SELECT MAX(timestamp) FROM table), исходя из предположения, что есть индекс.

Sergey
02.10.2018
13:00:39

Alexey
02.10.2018
13:02:43

Denis
02.10.2018
13:03:56
если нет индекса, можно лучше

Lestat -
02.10.2018
13:06:16
#cube #cubedata.h
Друзья, кто-нибудь сталкивался с вопросом увеличения кол-ва измерений для типа данных CUBE ?
выхожу на 100 измерений, гугл говорит лимиты в cubedata.h, а у меня такого файла в контрибах нет

Alexey
02.10.2018
13:06:53

Denis
02.10.2018
13:07:23
попробовали? за сколько выполнился? у меня еще один вариант есть.

Alexey
02.10.2018
13:10:17

Denis
02.10.2018
13:10:29
давайте

Alexey
02.10.2018
13:11:39
SELECT
supplier_orders.time,
products.id
FROM dealer_order_items
INNER JOIN dealer_orders ON dealer_order_items.order_id = dealer_orders.id
INNER JOIN delivery_addresses ON dealer_orders.delivery_address_id = delivery_addresses.id
INNER JOIN dealers ON delivery_addresses.dealer_id = dealers.id
INNER JOIN product_revisions ON dealer_order_items.product_revision_id = product_revisions.id
INNER JOIN products ON product_revisions.product_id = products.id
LEFT JOIN supplier_order_items ON products.id = supplier_order_items.product_id
INNER JOIN supplier_orders ON supplier_order_items.order_id = supplier_orders.id
WHERE dealer_orders.status IN ('accepted', 'being_picked', 'ready_for_delivery', 'being_delivered', 'delivered')
AND dealer_id = 7
AND extract('year' FROM dealer_orders.time) = 2015
AND is_combined_order IS FALSE
AND is_dummy_order IS FALSE
-- AND supplier_orders.time = тут должен быть дополнительный фильтрующий параметр

Let Eat
02.10.2018
13:12:01

Alexey
02.10.2018
13:14:56
Мне нужно получить сумму, уплаченную оптовым поставщиком заводу за ту продукцию, что он (оптовый поставщик) продал своему дилеру. То есть, например, если дилер купил 10 коробок в Китае по 10 долларов за штуку, а потом перепродал 4 из них своему дилеру по 100 за каждую, я должен получить сумму 40.

Denis
02.10.2018
13:15:00
Как?
в качестве гипотезы - оконным rank()-ом, чтобы было в один проход.

Terminator
02.10.2018
13:15:01
@TopTopol будет жить. Поприветствуем!

Сергей
02.10.2018
13:15:40

Denis
02.10.2018
13:16:16

Alexey
02.10.2018
13:16:53
а в коде не проще ли?
Проще, конечно, но хочется, чтобы запрос возвращал уже готовый результат и его не приходилось дополнительно обрабатывать в контроллере.

Сергей
02.10.2018
13:18:41

Alexey
02.10.2018
13:19:02

Google

Denis
02.10.2018
13:19:17
задача звучит как SQL-ная, если честно;

Let Eat
02.10.2018
13:19:24

Alexey
02.10.2018
13:19:36

Denis
02.10.2018
13:19:52

Let Eat
02.10.2018
13:20:11
В explain само иногда выпадает :)

Denis
02.10.2018
13:20:25
погуглю

Let Eat
02.10.2018
13:21:36
Я так понял оно про "сканируем все, в памяти держим топ N" , потом только N в конце отсортируем перед выдачей

Yaroslav
02.10.2018
13:22:51


Alexey
02.10.2018
13:23:38

Yaroslav
02.10.2018
13:25:25
Да. Извините, это мне запрещено делать.
Всегда это "запрещено" меня радует. :)
Так почему бы так и не написать MAX(supplier_orders.time)?
Или Вам нужны какие-то ещё поля? Если да, посмотрите в сторону DISTINCT ON, наверное.

Denis
02.10.2018
13:26:24
воот, Ярослав подсказал, как сделать top-N heap sort
SELECT DISTINCT ON (timestamp) FROM table ORDER BY timestamp DESC LIMIT 1;
нет, это не то, извините

Alexey
02.10.2018
13:28:20

Yaroslav
02.10.2018
13:29:40
ого, я такие и не знаю. а как это делается?
Это обычно используется в запросах с LIMIT <небольшое число>.
Попробуйте "EXPLAIN ANALYZE SELECT ... FROM any_table ORDER BY неиндесированное_поле LIMIT 5;", и Вы его почти наверняка увидите.

Alexey
02.10.2018
13:30:26
Спасибо. Завтра уже буду пробовать.

Pavel
02.10.2018
14:29:09
Статейка, вот, от Алексея стоящая имхо https://habr.com/post/425083/

Alex
02.10.2018
14:57:56
а какая версия stolon нынче актуальная ?
а все разобрался

Google

Ivan
02.10.2018
17:39:00
Ребята, кто юзает Timescale в проде?
Гипертаблицы, все дела

Vladimir
02.10.2018
17:43:41
тоже интересно

Ivan
02.10.2018
17:44:10
Ну мы юзаем уже год
С версии 0.8