Size: a a a

pgsql – PostgreSQL

2021 February 07

МН

Максим Нестеров... in pgsql – PostgreSQL
По мне, это немного ужасно
источник

МН

Максим Нестеров... in pgsql – PostgreSQL
Код
источник

D

Denisio in pgsql – PostgreSQL
Максим Нестеров
Парень берет задания, мы решаем, он получает деньги или я не прав?
звучит как стартап!
источник

l

lnuynxa in pgsql – PostgreSQL
Максим Нестеров
Парень берет задания, мы решаем, он получает деньги или я не прав?
ты получаешь бесценный опыт!
источник

AS

Anton Surnin in pgsql – PostgreSQL
Максим Нестеров
По мне, это немного ужасно
Ужасно что? То как я написал запрос, или просить помощи это ужасно?
источник

МН

Максим Нестеров... in pgsql – PostgreSQL
У тебя это для 1с?
источник

МН

Максим Нестеров... in pgsql – PostgreSQL
источник

AS

Anton Surnin in pgsql – PostgreSQL
Нет, это просто sql запрос в DBeaver
источник

AS

Anton Surnin in pgsql – PostgreSQL
Таблички тоже мои
источник

АГ

Алина Головлева... in pgsql – PostgreSQL
Anton Surnin
Здравствуйте, я очень новичок в psql, но мне очень срочно нужно реализовать следующее:
Есть две таблицы сделки и платежи, нужно соединить в одну и вывести только первый платеж каждой сделки. В распоряжении id сделки и даты платежей (их у каждой сделки может быть много).
Вот что у меня получилось, но там выводятся все платежи:
SELECT
deals.deal.id AS Порядковый_номер,
deals.deal.object_string AS Объект,
deals.deal.object_id AS №_Помещения,
deals.deal.money AS Цена_помещения,
deals.deal.pre_date AS Дата_предвы,
deals.pay.money AS Сумма_первого_платежа,
deals.pay.pay_date AS Дата_первого_платежа,
deals.deal.terminated_at AS Дата_расторжения,
deals.deal.comment AS Комментарий
FROM deals.deal, deals.pay
WHERE deals.pay.deal_id = deals.deal.id;
deals.pay.pay_date - поле по которому нужно определить самый первый(старый) платеж
поможет оконная функция row_number()
источник

В

Валерий in pgsql – PostgreSQL
подскажите пожалуйста как получить интовый массив из jsonb массива в функции
источник

AS

Anton Surnin in pgsql – PostgreSQL
Алина Головлева
поможет оконная функция row_number()
не совсем понял как мне поможет функция, которая нумерует результат последовательности(
источник

АГ

Алина Головлева... in pgsql – PostgreSQL
Anton Surnin
не совсем понял как мне поможет функция, которая нумерует результат последовательности(
row_number () over (partition by deals.deal.id order by deals.pay.pay_date ) as rn -  добавляете в ваш запрос, который  делаете подзапросом
далее в основном запросе выбираете строки где rn=1
источник

ВК

Влад Казаков... in pgsql – PostgreSQL
Кажется, тут можно без подзапроса решить
источник

mm

miruzzy miruzzy in pgsql – PostgreSQL
Привет всем, подскажите, пожалуйста, как правильно сделать вставку  в поле bytea

Есть таблица
create table testtable( col bytea[5])


Так-же у меня есть 2 переменные типа smallint
 a smallint, b smallint


Я хочу вставить в таблицу данные в виде двоичного формата
Только вот даже не знаю, как правильно это сформулировать

Объясню на примере:

a = 3 (0x0003)
b = 1 (0x0001)
--  Добавляем нули впереди, чтобы видно было ограничение smallint

insert into testtable( col ) values (  <Что тут писать> ? );
Чтобы вставилось следующее:
0x00 00 03 00 01     -- отделю байты пробелами, чтобы было понятней

т.е.  в 1-0 байты записываем значение b, в 3-2 байты - a, 4 байт оставляем 0

Понимаю, что надо использовать &, но только как правильно ?
источник

ВК

Влад Казаков... in pgsql – PostgreSQL
Anton Surnin
Здравствуйте, я очень новичок в psql, но мне очень срочно нужно реализовать следующее:
Есть две таблицы сделки и платежи, нужно соединить в одну и вывести только первый платеж каждой сделки. В распоряжении id сделки и даты платежей (их у каждой сделки может быть много).
Вот что у меня получилось, но там выводятся все платежи:
SELECT
deals.deal.id AS Порядковый_номер,
deals.deal.object_string AS Объект,
deals.deal.object_id AS №_Помещения,
deals.deal.money AS Цена_помещения,
deals.deal.pre_date AS Дата_предвы,
deals.pay.money AS Сумма_первого_платежа,
deals.pay.pay_date AS Дата_первого_платежа,
deals.deal.terminated_at AS Дата_расторжения,
deals.deal.comment AS Комментарий
FROM deals.deal, deals.pay
WHERE deals.pay.deal_id = deals.deal.id;
deals.pay.pay_date - поле по которому нужно определить самый первый(старый) платеж
Как-то так получилось:
SELECT
      MAX(pay.id) AS latest
FROM deal
        JOIN pay
             ON (deal.id = pay.deal_id)
        JOIN pay t ON (deal.id = t.deal_id)
GROUP BY deal.id, t.id
HAVING t.id = MAX(pay.id);

Я просто недавно похожую штуку делал, попробовал свой запрос руками переписать.
Естественно, не проверял)
источник

AT

Alexander Thesecret in pgsql – PostgreSQL
Товарищи, я правильно понимаю, что при использовании партицирования по хешу от bigint PostgreSQL ищет REMAINDER не через банальный %, а как-то по-другому?
источник

AT

Alexander Thesecret in pgsql – PostgreSQL
Вот простой пример:
create table test(
id bigint primary key not null
) partition by hash(id);

CREATE TABLE test_0 PARTITION OF test FOR VALUES WITH (MODULUS 4, REMAINDER 0);
CREATE TABLE test_1 PARTITION OF test FOR VALUES WITH (MODULUS 4, REMAINDER 1);
CREATE TABLE test_2 PARTITION OF test FOR VALUES WITH (MODULUS 4, REMAINDER 2);
CREATE TABLE test_3 PARTITION OF test FOR VALUES WITH (MODULUS 4, REMAINDER 3);

insert into test (id) VALUES (0) ON CONFLICT (id) DO NOTHING;
insert into test (id) VALUES (1) ON CONFLICT (id) DO NOTHING;
insert into test (id) VALUES (2) ON CONFLICT (id) DO NOTHING;
insert into test (id) VALUES (3) ON CONFLICT (id) DO NOTHING;
источник

AT

Alexander Thesecret in pgsql – PostgreSQL
Вот что по итогу:
test_0:  [0, 1]
test_1:   [3]
test_2:  [2]
test_3:  []
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Alexander Thesecret
Товарищи, я правильно понимаю, что при использовании партицирования по хешу от bigint PostgreSQL ищет REMAINDER не через банальный %, а как-то по-другому?
Так по хешу же (от bigint), по идее (я в код не заглядывал, но кажется логичным)?
источник