5. Пишемо SELECT, додаємо функції, агрегації та CASE WHEN | SQL для дата-аналітиків українською

Поділитися
Вставка
  • Опубліковано 18 лип 2023
  • 🔥 Друзі, повний безкоштовний курс по SQL вже доступний на каналі - • ПОВНИЙ ПРАКТИЧНИЙ КУРС...
    Після того, як ми познайомились з основними блоками запитів SQL, я пропоную детальніше дослідити кожен, починаючи з першого - SELECT. І головне - не забуваємо практикуватися!
    ----------
    🎁 Якщо такі матеріали для вас корисні і ви хочете підтримати мою діяльність, нижче додаю реквізити моно банки. Всі донати подвоюю і відправляю щомісяця на потреби ЗСУ. ❤ ДЯКУЮ ВСІМ ЗА ПІДТРИМКУ!!!
    🔗Посилання на банку: send.monobank.ua/jar/3uVeAbCMjA
    💳Номер картки банки: 5375 4112 1233 7740
    ----------
    Більше матеріалів 👇
    _______
    💻 Код з відео доступний за посиланням:
    github.com/NickTimosh/sql_pra...
    _______
    ✨Практичні завдання для закріплення матеріалу:
    1. Вивести кількість унікальних значень для кожної колонки, що містить текстові значення.
    2. Вивести унікальні значення для кожної колонки, що містить текстові значення. (SELECT DISTINCT column_name FROM salaries)
    3. Вивести середню, мінімальну та максимальну з/п (salary_in_usd) для кожного року (окремими запитами, в кожному з яких впроваджено фільтр відповідного року)
    4. Вивести середню з/п (salary_in_usd) для 2023 року по кожному рівню досвіду працівників (окремими запитами, в кожному з яких впроваджено фільтр року та досвіду).
    5. Вивести 5 найвищих заробітних плат в 2023 році для представників спеціальності ML Engineer. Заробітні плати перевести в гривні.
    6. Вивести Унікальні значення колонки remote_ratio, формат даних має бути дробовим з двома знаками після коми, приклад: значення 50 має відображатись в форматі 0.50
    7. Вивести дані таблиці, додавши колонку 'exp_level_full' з повною назвою рівнів досвіду працівників відповідно до колонки exp_level. Визначення: Entry-level (EN), Mid-level (MI), Senior-level (SE), Executive-level (EX)
    8. Додатки колонку "salary_category', яка буде відображати різні категорії заробітних плат відповідно до їх значення в колонці 'salary_in_usd'. Визначення: з/п менша за 20 000 - Категорія 1, з/п менша за 50 000 - Категорія 2, з/п менша за 100 000 - Категорія 3, з/п більша за 100 000 - Категорія 4
    9. Дослідити всі колонки на наявність відсутніх значень, порівнявши кількість рядків таблиці з кількістю значень відповідної колонки
    10. Порахувати кількість працівників в таблиці, які в 2023 році працюють на компанії розміру "М" і отримують з/п вищу за $100 000
    ________
    Наснаги!

КОМЕНТАРІ • 40

  • @Serhii_Krasovskyi
    @Serhii_Krasovskyi Місяць тому +1

    Як завжди все лаконічно, зрозуміло і доступно. Дякую!

  • @BlakeLively255
    @BlakeLively255 Місяць тому +1

    Дякую за цікаві відео

  • @user-fj4jy7qq8n
    @user-fj4jy7qq8n 5 місяців тому +3

    Дякую!
    У вас дуже гарно виходить викладати матеріал, все доступно і зрозуміло.
    Успіхів вам, в вашій не легкій справі!

    • @ion_lab
      @ion_lab  5 місяців тому

      Вітаю і дякую за відгук, мені це дуже приємно) Успіхів у навчанні!

  • @olefiryschka
    @olefiryschka 3 місяці тому +1

    СУПЕРM♥♥♥

  • @user-jr1rv5cx5f
    @user-jr1rv5cx5f 10 місяців тому +2

    ОООО....новий відосік! Хутко до перегляду.

  • @yegor2807
    @yegor2807 10 місяців тому +3

    Select best course
    From all sql courses

  • @Vivi_can
    @Vivi_can 2 місяці тому +1

    ДЯКУЮ💜

  • @aad-sk5xu
    @aad-sk5xu 10 місяців тому +3

    Дякую, дуже подобаються такі уроки, чекаю наступних)))

  • @Tenly_UK
    @Tenly_UK 3 місяці тому +1

    Дякую!

  • @oleksandrmelnychuk8227
    @oleksandrmelnychuk8227 2 дні тому

    В 10 завданні потрібно або виправити відповідь, або в завданні зазначити "не меншу за $100 000". Дякую за уроки)

    • @ion_lab
      @ion_lab  2 дні тому

      Дякую вам)))

  • @VladIhnatenko
    @VladIhnatenko 10 місяців тому +1

    Супер, дякую ха урок.
    По тиху рухаюсь у вивченні)

  • @innatymoshenko4430
    @innatymoshenko4430 10 місяців тому +1

    Дякую за ролик

  • @prostyj_hlopaka
    @prostyj_hlopaka 10 місяців тому +1

    Вподобайка

  • @vv.5878
    @vv.5878 9 місяців тому +1

    👍

  • @kolt-levry
    @kolt-levry 4 місяці тому

    Вау як круто, скільки корисної інформації. Дуже дякую!

    • @ion_lab
      @ion_lab  4 місяці тому +1

      Вас не зупинити) Але я все ж таки запрошую до повного курсу, бо там багато доповнень і додаткових матеріалів) ua-cam.com/video/HkT_VrzbXZQ/v-deo.html

  • @user-li3ky1cc2b
    @user-li3ky1cc2b 10 місяців тому +1

    👍👍👍👍

  • @dmitriychernishov8760
    @dmitriychernishov8760 10 місяців тому

    Вподобайка + комент за нові знання

  • @K-yc9by
    @K-yc9by 10 місяців тому

    Дякую! Цікавлять інші ресурси для тренувань - не підкажете? Також не знайшов можливості змінити тему програми на темну і збільшити шрифт коду. Ще раз дякую за уроки!

  • @user-my9xg8ri6p
    @user-my9xg8ri6p 10 місяців тому +2

    Дякую, очікувала на продовження! Підкажіть, чи буде у відкритому доступі код з вирішенням домашніх завдань?

    • @user-ro9ki9pn1c
      @user-ro9ki9pn1c 9 місяців тому +2

      дивись на гітхаб в описі відео

  • @pakhomovoleg
    @pakhomovoleg 7 місяців тому +2

    дякую за урок. Завдання 6 довелося питати в chatGPT бо ROUND(remote_ratio / 100, 2) видавав тільки 2 значення (0 і 1). Якщо ROUND(remote_ratio / 100.0, 2) то відповідь буде на 3 значення (0, 0.50 і 1)
    подивився відповіді і вказання where 1=1 це же геніально! дозволяє потім вставляти будь яку умову не переписуючи запит!

    • @ion_lab
      @ion_lab  7 місяців тому +1

      Дякую за комент!
      Десь в межах практикуму говорили про проблему ROUND(remote_ratio / 100, 2). Але напевно потрібно ще буде зробити акцент на типах даних. Ще раз дякую за актуальні підказки та поширення власного досвіду!

    • @Vivi_can
      @Vivi_can 2 місяці тому

      Я використала: SELECT DISTINCT remote_retio * 0.01
      Коли вже звірялась з відповідями, спробувала через ROUND(remote_ratio/100.0,2) та мені видає помилки

  • @agony4181
    @agony4181 4 місяці тому

    Чи є сенс шукати якись плагін або щось в налаштуваннях щоб ключови слова скл кода самі по собі ставали у вергій регістр?

    • @ion_lab
      @ion_lab  4 місяці тому +1

      Вітаю) Якщо ви працюєте зараз в pgAdmin - там є функціонал форматування коду. Спробуйте shift+Ctrl+k)

    • @agony4181
      @agony4181 4 місяці тому

      @@ion_lab Дяка)

  • @user-tj1zf2fu7y
    @user-tj1zf2fu7y 2 місяці тому

    Добрий день. Не зрозуміла, для чого в 10му завданні у відповідях в рядку там де WHERE вказано 1=1. Адже якщо прибрати 1=1, то вертається такий самий результат. За що відповідає 1=1?

    • @ion_lab
      @ion_lab  2 місяці тому

      Добрий день) Пропустили цей момент, ми про це говорили) Дивіться, 1=1 повертає True. Це жодним чином не змінює запит, не впливає взагалі ні на що. Але такий трюк використовується для форматування коду. Адже тепер Кожна умова фільтру в блоці Where починається зі службового слова (AND або OR). Тепер, наприклад, якщо ви вирішите прибрати перший фільтр в коментарі - ва не потрібно буде змінювати другий фільтр. Ось тут можна побачити детальніше: pushmetrics.io/blog/why-use-where-1-1-in-sql-queries-exploring-the-surprising-benefits-of-a-seemingly-redundant-clause/

    • @user-pr2eo2xx3t
      @user-pr2eo2xx3t 2 місяці тому

      Дякую!​@@ion_lab

  • @agony4181
    @agony4181 4 місяці тому

    Хтось догуглився як виводити лише текстові колонки?
    Найбліще що знашов
    SELECT *
    FROM salaries
    WHERE column_type='text';
    або
    SELECT *
    FROM salaries
    WHERE data_type='text';
    оба викидають
    ERROR: column "column_type" does not exist

    • @ion_lab
      @ion_lab  4 місяці тому +1

      Добрий день) Блок FROM - це джерело інформації, і нам не повернуться жодні дані, які фізично не належать джерелу. В даному випадку ми можемо повернути лише колонки таблиці. Але ми також маємо інформаційне джерело по нашій базі даних, і звідти можна запитати назви стовпчиків та типи даних. Спробуйте:
      SELECT column_name, data_type
      FROM information_schema.columns
      WHERE table_name = 'your_table_name'
      AND data_type = 'text';
      Скажіть, чи вам цікаво було б пройти повний курс? Відео вже доступне на каналі, посилання і в описі під цим відео)

    • @agony4181
      @agony4181 4 місяці тому

      @@ion_lab я так понял що фільтрувати їх за типом даних я навчуся у наступних уроках а поки що роблю це мануально?

    • @ion_lab
      @ion_lab  4 місяці тому

      @@agony4181 Не зовсім так, ми не фільтруємо таблиці за типами даних - в цьому зазвичай не має потреби. Чи у вас є приклад необхідності такої дії?

    • @agony4181
      @agony4181 4 місяці тому +1

      @@ion_lab я про ваші задачі у описі
      1. Вивести кількість унікальних значень для кожної колонки, що містить текстові значення.
      Як я маю відфільтрувати колонки із нетекстовими значеннями?

    • @user-pi3cl9mv5k
      @user-pi3cl9mv5k 4 місяці тому

      @@ion_lab Ви напевно мали на увазі вивести унікальні значення для кожної колонки окремими запитами бо одночасно не виходить(значення по рядах будуть унікальні а по колонках - ні!!!). І тип даних ми не перевіряємо а просто переглядаємо попередньо у якій колонці текст і вказуємо вручну. Поясніть 2 задачу б будь ласка