Size: a a a

DBA - русскоговорящее сообщество

2021 February 17

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
Anton
Я в string_agg собиоаю в т.ч. и 'n'. Видимо поэтому нарастающая кюсклейка.
Нет, не поэтому.  И я Вам уже написал, как это решать, нет?
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Anton
Запрос трехстраничный, переделать этото место на group by не вариант, сильно усложняет.

По сути запрос выдает записи с самым высоким рангом и все варианты склеивает в строку.
Это место в одной из вьюх with. Запрос по двум похожим окнам - одно окно с сортировкой для first, второе окно доя string_agg, без сортировки, чтобы бралось все окно. В том же запросе  делается distinct по всем полям.
В запосе ниже, использующем эту вьюху with, есть сортировка.
Вот это вот "все варианты склеивает в строку" - это ахтунг, так нельзя делать
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Ilia Zviagin
Вот это вот "все варианты склеивает в строку" - это ахтунг, так нельзя делать
Ты потом это обрабатывать не сможешь
источник

A

Anton in DBA - русскоговорящее сообщество
Yaroslav Schekin
Нет, не поэтому.  И я Вам уже написал, как это решать, нет?
Прямо сейчас не могу проверить, поэтому предполагаю, возможно неверно. У меня точно ьыоюламнарастаюшая если брать то же окно, что и для first_value().
Но спасибо в любом случае.
источник

A

Anton in DBA - русскоговорящее сообщество
Ilia Zviagin
Ты потом это обрабатывать не сможешь
Так точно. Это далее обрабатывается не системно, а руками, проверкой вариантов с низким рангом. Причем на выходе денормализацию со всеми вариантами не хотят, хотят Excel. Такая странная задача, поэтому и запрос такой. Всего записей меньше 300 тыс,  для ручной сверки остается не больше 5%.
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
Anton
Прямо сейчас не могу проверить, поэтому предполагаю, возможно неверно. У меня точно ьыоюламнарастаюшая если брать то же окно, что и для first_value().
Но спасибо в любом случае.
Естественно, потому что framing option по умолчанию — RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW, а без ORDER BY это значит, что в frame входят все записи окна, потому что все они — peers текущей записи (а режим RANGE значит, что frame начинается с первого peer текущей записи, а заканчивается последним её peer).
И это основы [понимания] оконных функций, мне кажется. ;)
источник

A

Anton in DBA - русскоговорящее сообщество
Yaroslav Schekin
Естественно, потому что framing option по умолчанию — RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW, а без ORDER BY это значит, что в frame входят все записи окна, потому что все они — peers текущей записи (а режим RANGE значит, что frame начинается с первого peer текущей записи, а заканчивается последним её peer).
И это основы [понимания] оконных функций, мне кажется. ;)
Да хорошо, уел, пусть я бестолковая белка ;)
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
Anton
Да хорошо, уел, пусть я бестолковая белка ;)
При чём тут это? ;) Просто стоит освоить, если уж пользуетесь, IMNSHO.
Кстати про "не могу проверить": https://dbfiddle.uk/?rdbms=postgres_13&fiddle=5dc2c21e3ae7117e69ad316cc98c3844
источник

A

Anton in DBA - русскоговорящее сообщество
Yaroslav Schekin
При чём тут это? ;) Просто стоит освоить, если уж пользуетесь, IMNSHO.
Кстати про "не могу проверить": https://dbfiddle.uk/?rdbms=postgres_13&fiddle=5dc2c21e3ae7117e69ad316cc98c3844
Не всё запоминается с первого раза, тем более по редким задачвм. Вот теперь, благодаря вам запомнил на всю жизнь))
Сам мой вопрос был некорректен, потому что начал думать не в ту сторону и вы правы, что практического понимания пользы range у меня мало, но не правы, что документация его добавляет.
Всё работает как хотелось, спасибо))
источник

A

Alexey in DBA - русскоговорящее сообщество
Так и используйте Энтерпрайз решения, а не вот это все
источник

DM

Dmitry Malinin in DBA - русскоговорящее сообщество
Спасибо Кэп.
источник

A

Adv0cat in DBA - русскоговорящее сообщество
> Проект федерального уровня, лютый энтерпрайх и хайлоад.
А по факту 1к rps нужно будет держать 🤪
источник

LE

Lex E in DBA - русскоговорящее сообщество
Adv0cat
> Проект федерального уровня, лютый энтерпрайх и хайлоад.
А по факту 1к rps нужно будет держать 🤪
А разве есть какое-то определение хайлоад?

Есть такая статья , в которой автор говорит, что

хайлоад - это в том числе когда у тебя 1 просраный запрос из 1000 стоит дорого в рублях

Пример, private banking. В приложении банка 10000 mau, и у всех много денег на счету и операций с ними
источник

DM

Dmitry Malinin in DBA - русскоговорящее сообщество
Да, вижу ошибся с аудиторией. Все такие прям гуру...

Ну пардоньте..
источник

A

Alexey in DBA - русскоговорящее сообщество
В вам кто нужен? Джун на хайлоад?
источник

A

Alexey in DBA - русскоговорящее сообщество
источник

A

Adv0cat in DBA - русскоговорящее сообщество
Да шо ж вы шутки юмора то не понимаете? Ужс, этот hr сломался, несите нового 😏
источник

LE

Lex E in DBA - русскоговорящее сообщество
Adv0cat
Да шо ж вы шутки юмора то не понимаете? Ужс, этот hr сломался, несите нового 😏
Это был не hr, там url в bio

http://github.com/pdacity
источник

A

Adv0cat in DBA - русскоговорящее сообщество
Значит оценил шутку, но все равно почему-то удалил вакансию 😅
источник

A

Adv0cat in DBA - русскоговорящее сообщество
Dmitry Malinin
Да, вижу ошибся с аудиторией. Все такие прям гуру...

Ну пардоньте..
Вам шутка не понравилась? Или чего удалили вакансию? 🤗
источник