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
________
Наснаги!
Як завжди все лаконічно, зрозуміло і доступно. Дякую!
Дякую за цікаві відео
Дякую!
У вас дуже гарно виходить викладати матеріал, все доступно і зрозуміло.
Успіхів вам, в вашій не легкій справі!
Вітаю і дякую за відгук, мені це дуже приємно) Успіхів у навчанні!
СУПЕРM♥♥♥
ОООО....новий відосік! Хутко до перегляду.
Select best course
From all sql courses
ДЯКУЮ💜
Дякую, дуже подобаються такі уроки, чекаю наступних)))
Дякую!
В 10 завданні потрібно або виправити відповідь, або в завданні зазначити "не меншу за $100 000". Дякую за уроки)
Дякую вам)))
Супер, дякую ха урок.
По тиху рухаюсь у вивченні)
Дякую за ролик
Вподобайка
👍
Вау як круто, скільки корисної інформації. Дуже дякую!
Вас не зупинити) Але я все ж таки запрошую до повного курсу, бо там багато доповнень і додаткових матеріалів) ua-cam.com/video/HkT_VrzbXZQ/v-deo.html
👍👍👍👍
Вподобайка + комент за нові знання
Дякую! Цікавлять інші ресурси для тренувань - не підкажете? Також не знайшов можливості змінити тему програми на темну і збільшити шрифт коду. Ще раз дякую за уроки!
Дякую, очікувала на продовження! Підкажіть, чи буде у відкритому доступі код з вирішенням домашніх завдань?
дивись на гітхаб в описі відео
дякую за урок. Завдання 6 довелося питати в chatGPT бо ROUND(remote_ratio / 100, 2) видавав тільки 2 значення (0 і 1). Якщо ROUND(remote_ratio / 100.0, 2) то відповідь буде на 3 значення (0, 0.50 і 1)
подивився відповіді і вказання where 1=1 це же геніально! дозволяє потім вставляти будь яку умову не переписуючи запит!
Дякую за комент!
Десь в межах практикуму говорили про проблему ROUND(remote_ratio / 100, 2). Але напевно потрібно ще буде зробити акцент на типах даних. Ще раз дякую за актуальні підказки та поширення власного досвіду!
Я використала: SELECT DISTINCT remote_retio * 0.01
Коли вже звірялась з відповідями, спробувала через ROUND(remote_ratio/100.0,2) та мені видає помилки
Чи є сенс шукати якись плагін або щось в налаштуваннях щоб ключови слова скл кода самі по собі ставали у вергій регістр?
Вітаю) Якщо ви працюєте зараз в pgAdmin - там є функціонал форматування коду. Спробуйте shift+Ctrl+k)
@@ion_lab Дяка)
Добрий день. Не зрозуміла, для чого в 10му завданні у відповідях в рядку там де WHERE вказано 1=1. Адже якщо прибрати 1=1, то вертається такий самий результат. За що відповідає 1=1?
Добрий день) Пропустили цей момент, ми про це говорили) Дивіться, 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/
Дякую!@@ion_lab
Хтось догуглився як виводити лише текстові колонки?
Найбліще що знашов
SELECT *
FROM salaries
WHERE column_type='text';
або
SELECT *
FROM salaries
WHERE data_type='text';
оба викидають
ERROR: column "column_type" does not exist
Добрий день) Блок FROM - це джерело інформації, і нам не повернуться жодні дані, які фізично не належать джерелу. В даному випадку ми можемо повернути лише колонки таблиці. Але ми також маємо інформаційне джерело по нашій базі даних, і звідти можна запитати назви стовпчиків та типи даних. Спробуйте:
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'your_table_name'
AND data_type = 'text';
Скажіть, чи вам цікаво було б пройти повний курс? Відео вже доступне на каналі, посилання і в описі під цим відео)
@@ion_lab я так понял що фільтрувати їх за типом даних я навчуся у наступних уроках а поки що роблю це мануально?
@@agony4181 Не зовсім так, ми не фільтруємо таблиці за типами даних - в цьому зазвичай не має потреби. Чи у вас є приклад необхідності такої дії?
@@ion_lab я про ваші задачі у описі
1. Вивести кількість унікальних значень для кожної колонки, що містить текстові значення.
Як я маю відфільтрувати колонки із нетекстовими значеннями?
@@ion_lab Ви напевно мали на увазі вивести унікальні значення для кожної колонки окремими запитами бо одночасно не виходить(значення по рядах будуть унікальні а по колонках - ні!!!). І тип даних ми не перевіряємо а просто переглядаємо попередньо у якій колонці текст і вказуємо вручну. Поясніть 2 задачу б будь ласка