SQLAlchemy: How to JOIN tables | CTE | Subqueries | Window functions #8

Поделиться
HTML-код
  • Опубликовано: 10 дек 2024

Комментарии • 40

  • @artemshumeiko
    @artemshumeiko  Год назад +3

    💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gwP 💡
    Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot

  • @AS-fk5fw
    @AS-fk5fw Год назад +8

    за 2 часа с огромным удовольствием прошёл этот курс 🔥 и пошел смотреть ещё 4 ролика по раннему доступу с подпиской на бусти. я джун с опытом коммерческой разработки менее года и открыл для себя новое. А точнее я сталкивался с этим на работе, но ты круто объяснил, что добавило мне уверенности. спасибо!

  • @ФоксиДжентельмен
    @ФоксиДжентельмен 7 месяцев назад +1

    Респект автору. Объясняет аки боженька.

  • @albemaks
    @albemaks 4 месяца назад

    долго искал толковые инструкции по алхимии.
    Я их нашел, спасибо большое автору !

  • @asg5511
    @asg5511 Год назад +4

    Урок топовый!

  • @krevedko_krevedkin
    @krevedko_krevedkin Год назад +3

    Спасибо за урок. Как всегда отличные видео) Не думаешь снять такие же видосы про Redis? Что это такое как с этим работать через питон ну и все такое.

    • @artemshumeiko
      @artemshumeiko  Год назад +3

      Хорошее предложение) Подумаю

  • @Katar1x
    @Katar1x Год назад +5

    Лучший)

  • @Elena-ux2kb
    @Elena-ux2kb Год назад +4

    Артем, добрый день! В одном из видео вы упомянули, что SQLAlchemy может возвращать структуру объекта json, в которой будут отдаваться сгруппированные списки резюме по воркеру. Очень жду эту тему :-)

    • @artemshumeiko
      @artemshumeiko  Год назад +2

      Про сгруппированные по воркеру будет в следующем видео (9), а про json в 11 видео ;)

  • @nateriver8261
    @nateriver8261 Год назад +3

    Очень интересно

    • @artemshumeiko
      @artemshumeiko  Год назад +1

      Спасибо) стараюсь объяснять сложное простым языком

  • @iJaVolo
    @iJaVolo Год назад +1

    Артём, спасибо за этот курс! Ещё не досмотрел, но пока всё работает))) Задолбался я курить мануалы старые и непонятные, а тут всё понятно)
    Может уже спрашивали. Ты чередуешь как здороваешься "Всем привет! Меня зовут Артём" и "Всем привет! Меня зовут Артём Шумейко" - это что за такое интересное?))

    • @artemshumeiko
      @artemshumeiko  Год назад

      Вас понял. Постараюсь определиться с приветствием ;)

    • @iJaVolo
      @iJaVolo Год назад

      @@artemshumeiko А я подумал, что это пасхалка какая или просто шутка)

  • @vasiliy2396
    @vasiliy2396 9 месяцев назад +1

    Хороший курс, кстати алиасы работают для сортировки, только затестил 5:40

    • @artemshumeiko
      @artemshumeiko  9 месяцев назад

      спасибо, буду знать

  • @AOF_Materials
    @AOF_Materials 7 месяцев назад +1

    Привет. У меня в VSCode Intellisense гораздо слабее работает. Где можно посмотреть твои настройки VSCode (расширения и тд)?

  • @СергейПриемший
    @СергейПриемший 8 месяцев назад +1

    Здравствуйте, Артем. Мне кажется проще затащить нужные данные и обработать их, используя pandas. Подскажите, пожалуйста, такой подход может быть использован?, Если нет, то почему?

    • @artemshumeiko
      @artemshumeiko  8 месяцев назад +1

      1) pandas медленный. Мы используем SQL, чтобы внутри запроса прописать все нужные фильтры, поля и сортировки. СУБД справляется с этим в разы быстрее
      2) pandas не работает с вложенными данными. На фронт или клиенту часто нужно отдать вложенные данные, а pandas именно про работу с табличными данными
      3) даже если использовать pandas, SQLAlchemy никуда не уходит, потому что запросы по прежнему нужно как-то писать. И делать это через ORM приятнее и безопаснее, чем через тот же psycopg или любой другой драйвер для написания сырых SQL запросов

  • @shakh555
    @shakh555 8 месяцев назад +2

    не понимаю для чего нужен aliased, если можно вместо r = aliased(ResumesOrm) просто написать r = ResumesOrm
    мы же в питоне 😀, питон по умолчанию дает такие возможности, хоть по-русски обзови

  • @АгабиАхатаев
    @АгабиАхатаев 7 месяцев назад +1

    А будет курс по RabbitMQ и взаимодействие между микросервисами и тому подобные?

    • @artemshumeiko
      @artemshumeiko  7 месяцев назад

      Курс не уверен, но видео точно будет

  • @nachtblume6629
    @nachtblume6629 10 месяцев назад +1

    Можем так делать, нужно так делать, но мы не будем так делать 😂😂😂😂

  • @user-LvSerg777
    @user-LvSerg777 5 месяцев назад +2

    Очень неудобно дописывать код, который добавляется или изменяется за кадром между видео 👎👎👎

  • @КристинаШишкина-у8о
    @КристинаШишкина-у8о 4 месяца назад

    Может кто-то подсказать почему если в файле объявлено создание таблиц и через core и через orm то есть есть создание таблиц как класс и как Table, и при вызову , main хоть я и запускаю только один варинат создания он все равно конфликтует и говорит что такое уже есть хоть после каждого запуска был дроп

  • @asg5511
    @asg5511 Год назад +2

    Планируется курс с 0 по Python?

    • @artemshumeiko
      @artemshumeiko  Год назад +8

      нет, моя миссия - покрывать материал, которого мало или вообще нету на ютубе. Курсов по Python очень много

  • @maisiq
    @maisiq Год назад +1

    Видимо оговорился, в order by же можно подставлять псевдонимы из селекта

    • @artemshumeiko
      @artemshumeiko  11 месяцев назад

      Имеете в виду в алхимии? В sql нельзя

    • @maisiq
      @maisiq 11 месяцев назад

      @@artemshumeiko комментарии с ссылками, видимо, удаляются, но так как order by выполняется после select, то в sql можно использовать псевдонимы столбцов с order by, только с ним

  • @AlexandrSpirit
    @AlexandrSpirit Год назад +1

    Пытаюсь разобраться с обычными оконными функциями. Без подзапросов и прочего.
    Для пагинации нужно добавить в вывод поле total_count - количество строк до применения limit
    select dr.direction_code, dr.record_code, dr.record_name, dr.record_num, rv.validity, rv.values
    ,COUNT(*) over () as TotalCount
    from nsi.direction_record dr
    left join nsi.record_version rv
    ON rv.direction_record_id = dr.direction_record_id
    and rv.validity @> now() :: timestamptz
    where not dr.is_delete
    and dr.direction_code = 'стр'
    order by dr.record_num
    Простой sql работает.
    Но на алхимию не перевести

  • @Повар-ф8в
    @Повар-ф8в 7 месяцев назад +1

    А почему нельзя вместо WITH AS обернуть еще раз весь запрос в подзапрос и потом просто сделать еще раз SELECT

  • @ДенисТележук
    @ДенисТележук Год назад +1

    Какие 100 тысяч?! Я за 35 тысяч и с питоном и sql и экселем работал... И отчетов куча

    • @nikito7ka
      @nikito7ka Год назад +1

      Соболезную

    • @TAF3000
      @TAF3000 10 месяцев назад

      35 - это зп интерна, хотя в Яндексе/Сбере и другим крупных компаниях стажером платят ещё больше, вроде где-то 70

    • @ДенисТележук
      @ДенисТележук 10 месяцев назад

      @@TAF3000 а там это полная ставка!