Size: a a a

pgsql – PostgreSQL

2020 August 04

YS

Yaroslav Schekin in pgsql – PostgreSQL
Evgeni Kontsevoy
вот это вы разложили конечно_)))))))))) я хотел узнать как можно в мой запрос
sum(case (data->>'auth_method'='phone')when true then 1 else 0 end) as "Authorization_by_phone"
вставить attribute на подобе как вы сделали с data->>'auth_method' IN ('phone', 'attribute')
Ну а что не так-то? ;(
Если нужно не это — тогда Вы пример покажите или напишите, что именно тут не так / что должно получиться...
источник

EK

Evgeni Kontsevoy in pgsql – PostgreSQL
Yaroslav Schekin
Ну а что не так-то? ;(
Если нужно не это — тогда Вы пример покажите или напишите, что именно тут не так / что должно получиться...
ладно,извините, я не могу обьяснить так,чтобы вы поняли.Извините и спасибо,что потратили на меня время,буду рыть глубже в гугле
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Evgeni Kontsevoy
ладно,извините, я не могу обьяснить так,чтобы вы поняли.Извините и спасибо,что потратили на меня время,буду рыть глубже в гугле
Неужели так трудно привести пример данных на пару строк, как я привёл, и написать, какой на нём должен получиться результат?
Вы хоть потом покажите, что получится / было нужно-то. ;)
источник

EK

Evgeni Kontsevoy in pgsql – PostgreSQL
Yaroslav Schekin
Неужели так трудно привести пример данных на пару строк, как я привёл, и написать, какой на нём должен получиться результат?
Вы хоть потом покажите, что получится / было нужно-то. ;)
да,конечно,покажу
источник

2_

2flower _ in pgsql – PostgreSQL
Yaroslav Schekin
WITH ewints(data) AS (   
VALUES
('{"site": {"id": "1111111", "url": "https://111111", "name": "111111"}, "client": {"id": "111111111", "owner": {"id": "111111111", "unp": "11111111", "name": "ЗАО \"11111\""}, "tariff": null, "client_id": "111111111", "locale_name": "1111111", "default_name": "11111111"}, "scopes": "1111111", "request": {"uri": "https://o111111", "lang": "ru", "port":33333, "user_agent": "1111 (1111)"}, "event_id": null, "alias_ids": ["11111111", "11111111"], "expires_in": 0, "grant_type": "111111", "token_hash": "1111111111", "auth_method": "phone", "session_uuid": "111111111"}'::jsonb),
('{"site": {"id": "1111111", "url": "https://111111", "name": "111111"}, "client": {"id": "111111111", "owner": {"id": "111111111", "unp": "11111111", "name": "ЗАО \"11111\""}, "tariff": null, "client_id": "111111111", "locale_name": "1111111", "default_name": "11111111"}, "scopes": "1111111", "request": {"uri": "https://o111111", "lang": "ru", "port":33333, "user_agent": "1111 (1111)"}, "event_id": null, "alias_ids": ["11111111", "11111111"], "expires_in": 0, "grant_type": "111111", "token_hash": "1111111111", "auth_method": "attribute", "session_uuid": "111111111"}'::jsonb)
)
SELECT SUM(CASE (data->>'auth_method'='phone') WHEN true THEN 1 ELSE 0 END) AS "Authorization_by_phone",
      COUNT(*) FILTER (WHERE data->>'auth_method' = 'phone') AS authorization_by_phone_simpler,
      COUNT(*) FILTER (WHERE data->>'auth_method' IN ('phone', 'attribute')) AS "like this?"
 FROM ewints;
Так? Или что-то другое нужно?
я может чего не понял, но 1 и второе поле -это одно и тоже?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
2flower _
я может чего не понял, но 1 и второе поле -это одно и тоже?
Да, это одно и то же (название там намекает). Что было нужно (то, что в ""like this?" или что-то другое), я так и не понял.
источник

2_

2flower _ in pgsql – PostgreSQL
Evgeni Kontsevoy
да,конечно,покажу
Вообще добавить атрибут в верхний уровень jsonb довольно просто.
data||'{"attr":"value"}'::jsonb
источник

YD

Yevhen Dmytrenko in pgsql – PostgreSQL
может кто помочь? есть модель(таблица) например - А, нужно создать а ней колонку в которой будет ссылка на таблицу Б, в которой с свою очередь многие-ко-многим из инстансов таблицы А
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Yevhen Dmytrenko
может кто помочь? есть модель(таблица) например - А, нужно создать а ней колонку в которой будет ссылка на таблицу Б, в которой с свою очередь многие-ко-многим из инстансов таблицы А
Показали бы Вы \d (или CREATE TABLE) настоящих таблиц (то, что есть) — оно так понятнее будет, чем A, B, X или Y, IMHO. ;)
К тому же, может выясниться, что Вам нужно сделать что-то другое...
источник

YD

Yevhen Dmytrenko in pgsql – PostgreSQL
скажем так, есть приспособление у которого может быть несколько подключенных таких же приспособление, и эти приспособления могут быть присоединены ко многим приспособлениям, это же м-т-м на сколько я могу судить?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Yevhen Dmytrenko
скажем так, есть приспособление у которого может быть несколько подключенных таких же приспособление, и эти приспособления могут быть присоединены ко многим приспособлениям, это же м-т-м на сколько я могу судить?
> у которого может быть несколько подключенных таких же приспособление

Так почему тогда "создать а ней колонку в которой будет ссылка на таблицу Б", раз их несколько? Или это не про эту таблицу?

А так, казалось бы, что-то вроде:
thing(id PK, name UNIQUE);
connection(from_thing REFERENCES thing, to_thing REFERENCES thing, PK(from_thing, to_thing));
Или нет?
источник

YD

Yevhen Dmytrenko in pgsql – PostgreSQL
у меня ошибка в том, что я создаю колонку decive_id и это форейн кии из device.id и колонка linked_device_id и это фореин кии на device.id, что-то я тут упускаю
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Yevhen Dmytrenko
у меня ошибка в том, что я создаю колонку decive_id и это форейн кии из device.id и колонка linked_device_id и это фореин кии на device.id, что-то я тут упускаю
Хмм... какая ошибка (не должно же быть)? Опять-таки, покажите что-то конкретное.
А в предложенной выше схеме что не так?
источник

YD

Yevhen Dmytrenko in pgsql – PostgreSQL
Yaroslav Schekin
Хмм... какая ошибка (не должно же быть)? Опять-таки, покажите что-то конкретное.
А в предложенной выше схеме что не так?
ошибка такая:
Database Error: [Could not determine join condition between parent/child tables on relationship Device.linked_devices - there are multiple foreign key paths linking the tables via secondary table 'connected_devices'.  Specify the 'foreign_keys' argument, providing a list of those columns which should be counted as containing a foreign key reference from the secondary table to each of the parent and child tables.]
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Yevhen Dmytrenko
ошибка такая:
Database Error: [Could not determine join condition between parent/child tables on relationship Device.linked_devices - there are multiple foreign key paths linking the tables via secondary table 'connected_devices'.  Specify the 'foreign_keys' argument, providing a list of those columns which should be counted as containing a foreign key reference from the secondary table to each of the parent and child tables.]
Это вообще не ошибка PostgreSQL, это что-то "левое" (ORM?).
источник

YD

Yevhen Dmytrenko in pgsql – PostgreSQL
SQLAlchemy
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Ну так это её проблемы. Т.е. это не в этот чат, по большому счёту...
источник

YD

Yevhen Dmytrenko in pgsql – PostgreSQL
спасибо, сори тогда
источник

N

Nikolay in pgsql – PostgreSQL
Nikolay
Анонс:

В ближайший вторник — про коррупцию. В гостях будут Андрей Бородин и Дмитрий Сарафанников и Яндекс.Облака.

YouTube: https://youtube.com/RuPostgres – подписывайтесь, ставьте колокольчик, чтобы не пропустить

Док с подробностями: http://bit.ly/RuPostgresTuesday
Сегодня продолжение разговора про коррупцию, через час (18 30 мск).

YouTube: https://youtube.com/RuPostgres (подпишитесь!)

Join Zoom Meeting (внимание! Ссылка теперь каждый раз новая): https://us02web.zoom.us/j/88253705409?pwd=QUY2Y0JNaWtkYnBvOTg5cElwOHB4dz09
источник

KS

Konstantin Shamiev in pgsql – PostgreSQL
Народ подскажите как решить проблему.
Мне нужен без знаковый числовой тип.
источник