Базы данных. MySQL. Select: GROUP, HAVING

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 ก.ย. 2024
  • Презентация:
    docs.google.co...
    Задачи:
    docs.google.co...
    Вводный курс по базам данных.
    В этом занятии будет:
    - Оператор DISTINCT
    - Конструкция GROUP BY
    - GROUP BY и агрегационные функции
    - GROUP BY и WHERE
    - GROUP BY и HAVING
    По любым вопросам, связанным с курсом можно писать на почту: okulov@rclass.pro

ความคิดเห็น • 41

  • @wsg2843
    @wsg2843 6 หลายเดือนก่อน +1

    Ответы по задачам:
    SELECT worker_id, SUM(salary)FROM `salaries` GROUP BY worker_id;
    SELECT worker_id, AVG(salary) as salary FROM `salaries` WHERE (date=2000;
    SELECT COUNT(tag_id) as count, tag_id FROM `tags_tasks` GROUP BY tag_id ORDER BY count DESC;
    SELECT COUNT(tag_id) as count, tag_id FROM `tags_tasks` GROUP BY tag_id ORDER BY count DESC LIMIT 1 OFFSET 1;
    SELECT worker_id, COUNT(end_at) as count FROM `tasks` WHERE end_at is not null and worker_id not in (11,12) GROUP BY worker_id ORDER BY count DESC;
    SELECT MONTH(date), DAY(date), SUM(salary) FROM `salaries` GROUP BY MONTH (date), DAY(date);

    • @Rclass
      @Rclass  6 หลายเดือนก่อน

      Лучший подписчик просто :) Спасибо большое :)

  • @Eliz_ign
    @Eliz_ign 2 ปีที่แล้ว +12

    Теперь и я присоединюсь к благодарящим))
    Наконец-то, я увидела внятное объяснение ошибки с группировкой, спасибо!!!

    • @Rclass
      @Rclass  2 ปีที่แล้ว +2

      Спасибо, мы старались :)

  • @IT_psychopath
    @IT_psychopath 3 ปีที่แล้ว +10

    я хз что это за дядька. но если бы в свое время он был моим учителем, я бы уже пентагон вертел, их сервера мне бы биткоины майнили. реально очень классная подача контента!

    • @Rclass
      @Rclass  3 ปีที่แล้ว +1

      Спасибо, мы старались :)

  • @websoda
    @websoda 4 ปีที่แล้ว +11

    Я чувствую, как становлюсь программистом

    • @alexeyb5830
      @alexeyb5830 ปีที่แล้ว

      Ну чо, ну чо, стал программистом?
      У меня 3 года коммерческого в бекенде, 1 единственный раз я эти конструкции применял в обычном скрипте для коллеги.
      Ни в одном проекте (только за посл полгода я приложений разных написал под десяток) это говно не применял, тк это просто лишняя инфа. Достаточно знать, что такое существует в sql. Сейчас выхожу на собесы, через одного клоун-интервьеюр своим долгом считает спросить эту ахинею.

    • @arshakmuradyan543
      @arshakmuradyan543 ปีที่แล้ว +2

      @@alexeyb5830 А я скажу что работаю где-то 1.5 года и раз 20 сталкивался с задачами havin и group by

    • @alexeyb5830
      @alexeyb5830 ปีที่แล้ว

      @@arshakmuradyan543 я говноедов знаю, которые используют в бутовом проекте статические классы, это не означает, что эту инфу мастхев выучить и применять надо. Хотя я нигде не спорил о том, что о существовании having и group by хотя бы знать надо.

  • @ProRezak
    @ProRezak 4 ปีที่แล้ว +22

    В универе бы так объясняли

  • @truetaras
    @truetaras ปีที่แล้ว +1

    очень ДУШНО.
    неопытным не будет понятно, опытные не поймут зачем это

    • @Rclass
      @Rclass  ปีที่แล้ว +1

      Интересно, запомним ваш комментарий))

    • @truetaras
      @truetaras ปีที่แล้ว +1

      @@Rclass это не хейт. видео выложено в сеть как обучающее, но больше похоже на имитацию внутреннего тренинга. Без критики на самом деле , потому что бесплатно

    • @yokep0
      @yokep0 ปีที่แล้ว +1

      А мне показалось очень сухо. Но достаточно, когда нужно быстро вникнуть в нюансы sql при наличии скила в бэкэндовых языках.
      Пытался ошибочно использовать distinct, где нужна была агрегация. Тут просто сказали - забудь, используй group by. И этого достаточно.
      Опыт в sql запросах не более 4 часов.

    • @Rclass
      @Rclass  ปีที่แล้ว +1

      @@truetaras Мы не воспринимали ваш комментарий как хейт, вы что! Сделали вывод что нужно быть более доходчивыми и понятными, вот и всё. А вам наоборот спасибо что обращаете на это внимание! :)

    • @Rclass
      @Rclass  ปีที่แล้ว +1

      @@truetaras Это и есть по сути внутренний тренинг, видео не заявлено как обучающее) Вообще весь курс достаточно случайно попал на ютуб по просьбе наших друзей компании, которые тоже хотели подтянуть знания по базам. К нашему удивлению достаточно активно зашло аудитории ютуба))

  • @Dimavolc
    @Dimavolc 3 หลายเดือนก่อน +1

    Чувак ты лучший , с меня подписка и лайк !!!

    • @Rclass
      @Rclass  3 หลายเดือนก่อน

      Спасибо, стараемся для вас 🙏

    • @Dimavolc
      @Dimavolc 3 หลายเดือนก่อน

      @@Rclass подскажи пожалуйста , материал понимается вроде неплохо , а вот когда задачи перед носом , не могу применять , что посоветуешь 🤔?

    • @Rclass
      @Rclass  2 หลายเดือนก่อน

      @@Dimavolc не совсем вас поняли, объясните чуть подробнее. Можно написать в личку нашему техдиру в TG: @qantus

  • @_v1pl_
    @_v1pl_ 8 หลายเดือนก่อน

    "Возможно захочется сделать такие вещи - применять условие на агрегацию и эта штука так просто не сработает.. потому что с агрегацией эти вещи просто-напросто не работают". Хотелось бы подробнее всё-таки узнать и затем понять почему, это же просто так не работает)

  • @dedpihto680
    @dedpihto680 ปีที่แล้ว +2

    возникает вопрос а что целесообразнее то и быстрее? обрабатывать полученные данные на каком либо языке программирования или же пусть обрабатывает майскл и выдает уже готовый список в мой язык программирования? (например вычисление сумм и тд и тп конкатенации и так далее)

    • @Rclass
      @Rclass  ปีที่แล้ว +1

      В каждом отдельном случае придется думать и проверять :)

    • @alexeyb5830
      @alexeyb5830 ปีที่แล้ว

      что за странный вопрос. У тебя прилетает 3000 строк из кафки в секунду. Ты хочешь их просуммировать. Ты пойдешь их в бд сложишь, сделаешь агрегацию и вытащишь? Тут и так понятно, что в оперативке приложения ты 3к ппс быстрее сложишь.
      БД реляционная нужна, чтобы там хранить информацию, а не агрегирующие функции применять. Более опытные коллеги поправят, но за полгода никто по делу тебе не написал.
      Можешь кейс привести, где у тебя выбор между обработать инфу положив в бд или в оперативке?)))

    • @dedpihto680
      @dedpihto680 ปีที่แล้ว

      @@alexeyb5830 да по итогу делаю так как удобней мне кодить. я ж не делаю базы для сотен тысяч пользователей.

  • @earlbasset4496
    @earlbasset4496 ปีที่แล้ว

    4:30 Кстати, в MS SQL в данном случае будет выбрано первое по очереди значение из таблицы. То есть, если в таблице workers есть, допустим, два разнорабочих по имени Пётр и Ваня и если в этой таблице разнорабочий Ваня будет первее того же Петра, то при таком запросе просто выберется Ваня, вроде как

    • @Rclass
      @Rclass  ปีที่แล้ว

      Хм, интересное уточнение) Мы с MSSQL не работаем так плотно)

  • @earlbasset4496
    @earlbasset4496 ปีที่แล้ว

    Скажите, пожалуйста, на 2:20 я так понял, что если взять отдельно зарплаты у Автомеханика и Разнорабочего, то получится 21500 и 15500 соответственно?
    Суть агрегирования sum такая, что для каждой профессии выдаётся тут сумма зарплат по данной профессии, верно? Или я что-то не понимаю?

  • @andreykultyshev480
    @andreykultyshev480 3 ปีที่แล้ว

    Антон, Вы своих стажёров так обучаете, или курсы джунов?

    • @Rclass
      @Rclass  3 ปีที่แล้ว +2

      Внутренние курсы для своих джунов :)

  • @disol588
    @disol588 ปีที่แล้ว

    Почему вам так не понравился Таблицы и связи в Дизайнере не понимаю, очень наглядно, и связи сразу можно выстраивать тамже.
    А также для удобства чтения ключей удобнее FK , PK использовать... чем название таблицы_id... конечно глаза разбегаются)
    Наблюдаю много ошибок... не выдержала ))
    в group by multiple например:
    Price, Prices ... а также это 2 разные колонки SUM и FROM ...
    А так все отлично! Главное без воды и самолюбования )))

    • @Rclass
      @Rclass  ปีที่แล้ว

      Дизайнер первый раз попробовали примерно в 2010 году, наверное поэтому такие ассоциации) Без ошибок сложно что-то сделать. И спасибо за позитивный отклик :)

  • @vladzaiko5012
    @vladzaiko5012 3 ปีที่แล้ว +3

    да что там за Рома ?)

    • @Rclass
      @Rclass  3 ปีที่แล้ว +1

      Один из наших разработчиков :)

  • @amelikrotova8006
    @amelikrotova8006 3 ปีที่แล้ว

    Скажите, а где задачки, которые надо ходить решать?

    • @Rclass
      @Rclass  3 ปีที่แล้ว

      Добрый день! Задачи и презентация (оттуда можно копировать текст запросов, например) - в описании к видео :)

    • @amelikrotova8006
      @amelikrotova8006 3 ปีที่แล้ว

      @@Rclass спасибо, я нашла . Скажите\, есть ли где-то правильные ответы, что бы потом сравнить ?

    • @Rclass
      @Rclass  3 ปีที่แล้ว

      @@amelikrotova8006 К сожалению, пока нет возможности их добавить :(. Как только сможем - обязательно сделаем.

  • @xxxMiheyxxx
    @xxxMiheyxxx 3 ปีที่แล้ว

    Программист меньше автомеханика получает( Эх.

    • @Rclass
      @Rclass  3 ปีที่แล้ว +2

      Такой вот программист( Ну или такой вот автомеханик. Можно даже сказать Автомеханик!