Size: a a a

pgsql – PostgreSQL

2020 May 22

KZ

Konstantin Zaitsev in pgsql – PostgreSQL
Victor Yegorov
это Postgres, ORDER BY amount DESC FETCH 1 ROW WITH TIES для 13+
для текущих версий надо как-то так (не быстро):
WITH d AS (SELECT id, count(*) AS amount FROM table GROUP BY id)
SELECT * FROM d WHERE amount = (SELECT max(amoun) FROM d);
а не прости не заметил, что не врамках хоть какой группы условие у автора
источник
2020 May 23

VY

Victor Yegorov in pgsql – PostgreSQL
Konstantin Zaitsev
а не прости не заметил, что не врамках хоть какой группы условие у автора
можно как-то так:
CREATE TABLE x (id int);
INSERT INTO x VALUES (1), (2), (3), (3), (4), (5), (6), (6);
SELECT * FROM (
 SELECT id, rank() OVER (ORDER BY count(*) DESC) FROM x GROUP BY id
   ) y WHERE rank=1;
источник

KZ

Konstantin Zaitsev in pgsql – PostgreSQL
Victor Yegorov
можно как-то так:
CREATE TABLE x (id int);
INSERT INTO x VALUES (1), (2), (3), (3), (4), (5), (6), (6);
SELECT * FROM (
 SELECT id, rank() OVER (ORDER BY count(*) DESC) FROM x GROUP BY id
   ) y WHERE rank=1;
👍
источник

DB

Dilame 🎩 Bowzee ⠀⠀⠀ོ... in pgsql – PostgreSQL
Victor Yegorov
можно как-то так:
CREATE TABLE x (id int);
INSERT INTO x VALUES (1), (2), (3), (3), (4), (5), (6), (6);
SELECT * FROM (
 SELECT id, rank() OVER (ORDER BY count(*) DESC) FROM x GROUP BY id
   ) y WHERE rank=1;
Выглядит изящно, спасибо;)
А с TIES так вообще красота, жаль, что у меня 12
источник

VY

Victor Yegorov in pgsql – PostgreSQL
ну 13 только beta1 вышла, вчера. так что хорошо, что у вас 12
источник

DB

Dilame 🎩 Bowzee ⠀⠀⠀ོ... in pgsql – PostgreSQL
Как указать, что функция возвращает результат другой функции?
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
Victor Yegorov
создание `CONSTRAINT`-ов на больших таблицах может занять значительное время.
я бы в транзакции (в вашем примере) сделал бы
… ADD CONSTRAINT … NOT VALID;
а потом, уже вне транзакции сделал бы для каждого из 2-х констрейнтов
ALTER TABLE a VALIDATE CONSTRAINT ac;
О, это чисто демонстрация возможностей отстрела ног :)
источник

2_

2flower _ in pgsql – PostgreSQL
использую tds_fdw
есть 2 foreign таблицы в функции,
джойн с которыми дает пустое множество при указании ключа как параметра функции, при этом если указать вместо параметра статическое число все работает.
ключи в ms sql integer, входяший параметр integer,
запрос внутри вида
select
from ftable1 f1
inner join ftable2 f2 on f1.id=f2.fk and f1.id=function.param

select
from ftable1 f1
inner join ftable2 f2 on f1.id=f2.fk and f1.id=function.param and f1.id=42

отрабатывает правильно
param-int
в логах пишет
WARNING:  Table definition mismatch: Could not match local column id with column from foreign table
источник

M

Maxim in pgsql – PostgreSQL
Есть ли разница по скорости в этих запросах?
...WHERE EXISTS (SELECT * FROM ...)
и
...WHERE EXISTS (SELECT id FROM ...)
источник

M

Maxim in pgsql – PostgreSQL
То есть для exists мне естественно не нужны все поля, есть ли смысл в такой 'оптимизации', чтобы селект возвращал только одно поле?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Maxim
То есть для exists мне естественно не нужны все поля, есть ли смысл в такой 'оптимизации', чтобы селект возвращал только одно поле?
я пишу SELECT FROM … — совсем без полей
источник

M

Maxim in pgsql – PostgreSQL
Victor Yegorov
я пишу SELECT FROM … — совсем без полей
О, спасибо, точно)
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Maxim
Есть ли разница по скорости в этих запросах?
...WHERE EXISTS (SELECT * FROM ...)
и
...WHERE EXISTS (SELECT id FROM ...)
Нет. Что указано в select list запроса EXISTS, не имеет значения при планировании запроса (для ответа на подобные вопросы можно просто смотреть и сравнивать планы).
Идиомы — "EXISTS (SELECT 1 FROM ...)", "EXISTS (SELECT NULL FROM ...)", иногда даже (работает только в PostgreSQL, насколько я помню) "EXISTS (SELECT FROM ...)".
источник

M

Maxim in pgsql – PostgreSQL
Ок, понял
источник

DG

Denis Girko ☕️ in pgsql – PostgreSQL
Я рядом!)
источник

АК

Алексей Копчиков... in pgsql – PostgreSQL
Сорян
источник

BC

Black Cryon in pgsql – PostgreSQL
Can somone here tell me how to host postgresql on server?
источник

c

compod 🗿 in pgsql – PostgreSQL
Запрос:
```
SELECT array_agg("t1"."o_prods") FROM "orders" AS "t1" WHERE (("t1"."o_time" > 1589639155) AND ("t1"."o_uid" IS NOT NULL)) GROUP BY "t1"."o_uid"

ответ:
cannot accumulate arrays of different dimensionality

Даже если я укажу в where array_ndims(o_prods) = 1 - я получаю это. почему?

И да, размерность у всех массивов одинаковая. Это я уже проверил
источник

c

compod 🗿 in pgsql – PostgreSQL
compod 🗿
Запрос:
```
SELECT array_agg("t1"."o_prods") FROM "orders" AS "t1" WHERE (("t1"."o_time" > 1589639155) AND ("t1"."o_uid" IS NOT NULL)) GROUP BY "t1"."o_uid"

ответ:
cannot accumulate arrays of different dimensionality

Даже если я укажу в where array_ndims(o_prods) = 1 - я получаю это. почему?

И да, размерность у всех массивов одинаковая. Это я уже проверил
CREATE AGGREGATE another_array_agr(anyarray) (
SFUNC = array_cat, STYPE = anyarray);


Пусть ответ будет здесь
источник

DK

Dmitry K. in pgsql – PostgreSQL
Привет! Подскажите пожалуйста мне с моим нубским вопросом по архитектуре Patroni. Если у меня уже есть полноценный отдельный Consul с тремя серверами, я могу сформировать Patroni-кластер из двух хостов СУБД, а не трёх?
источник