Size: a a a

pgsql – PostgreSQL

2021 June 23

AS

Anton Shelishkevich in pgsql – PostgreSQL
Если кол-во статусов конечно и не меняется динамически, то можно просто

select account_number                                             as account_number
    , coalesce(sum(amount) filter ( where status = 'PAID'), 0)   as paid
    , coalesce(sum(amount) filter ( where status = 'UNPAID'), 0) as unpaid
from temp.payments
group by account_number;
источник

MS

Marat Surmashev in pgsql – PostgreSQL
Товарищи, но подскажете, есть ли какая-нибудь библиотека (или сборник скриптов) c SQL аналогами шорткатов psql ?
типа  \l - SELECT datname FROM pg_database;
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Это, кстати, тоже формально недетерминированный запрос (но в PostgreSQL работать будет... пока / если поведение CTE снова не изменят).
источник

B

Bulba in pgsql – PostgreSQL
Всем привет! Нужно сделать ALTER COLUMN из text[] в integer[]. При этом если значение не удается конвертировать из text в integer его надо пропустить (но только его, а не целиком массив). Помогите 🥺
источник

ГА

Георгий Ава... in pgsql – PostgreSQL
В смысле, в одном массиве разные типы хранить?
Postgres вроде так не может.
источник

АА

Андрей Агеев... in pgsql – PostgreSQL
для бредовой задачи без условий самое то
источник

B

Bulba in pgsql – PostgreSQL
неа. Там массив чисел, но строками. Теперь надо их сделать числами
источник

AB

Alexey Bulgakov in pgsql – PostgreSQL
сделайте новую колонку и перенесите туда валидные данные
источник

AS

Anton Smirnov in pgsql – PostgreSQL
в несколько шагов, создать рядом колонку, заполнить, переехать на нее и старую удалить?
источник

B

Bulba in pgsql – PostgreSQL
Вообще в столбце вроде бы только числа, но на всякий случай надо сделать так чтобы не упало.
Я делал через ALTER TABLE table ALTER COLUMN column TYPE integer[] USING column::integer[], но оно упадет если будут невалидные данные
источник

B

Bulba in pgsql – PostgreSQL
а как проверить что text[] может быть сконвертирован в integer[] (то есть содержит строки только с числами) в синтаксисе постргреса?
источник

AB

Alexey Bulgakov in pgsql – PostgreSQL
перебрать все элементы массива или просто exception ловить
источник

R

Radist in pgsql – PostgreSQL
Как только вместо values встанет реальная таблица, порядок записей станет неопределённым.
Придумывание решений таким бредовым задачам способствует дальнейшей популярности таких задач. Правильный ответ был дан в начале - без доп. поля для сортировки задача не решается.
Подозреваю, что где-то сидят преподы или проводящие интервью и задают такие вопросы. Если им будут придумывать нерабочие решения, они так и будут продолжать задавать подобные вопросы. Либо это изначально вопрос с подвохом, чтобы опрашиваемый ответил, что так нельзя.
источник

R

Radist in pgsql – PostgreSQL
Можно написать функцию, которая словит ошибку и вернёт null, и использовать её вместо кастинга
источник

B

Bulba in pgsql – PostgreSQL
я вот думаю написать функцию. Создать новый массив. Итерироваться по старому, конвертировать данные и пихать в новый массив. Потом вернуть новый.
источник

АА

Андрей Агеев... in pgsql – PostgreSQL
ты видимо не только не писатель, но и не читатель,
я же написал - задача бредовая, решение рабочее для задачи.
предложенное (правильное) не правильное, потому что не решение. дискутировать не о чем, мне кажется. сорри.
p.s. какую задачу авторы задачи решают мы не знаем.
источник

АА

Андрей Агеев... in pgsql – PostgreSQL
собственно бредовость задачи и заинтересовала - сочинить навскидку максимально рабочее решение для бреда
источник

B

Bulba in pgsql – PostgreSQL
я совсем не шарю в sql. Скажите это норм? Нет ли тут каких подводных камней
источник

ac

alex che in pgsql – PostgreSQL
Виктор, возможно, вы хотите не пропустить мусорную строку, а вместо неё вставить магическую константу вроде -2000000000
источник

B

Bulba in pgsql – PostgreSQL
а -2000000000 действительно что то значит или это для примера?)
источник