Logo
TGCATALOG
Каталог Подборки Блог
Data analysis - DA SQL

Data analysis - DA SQL

Анализ данных: SQL, Python.

Нет оценок
582
29.10.2026
582
29.10.2026
Нет оценок
582
29.10.2026
Безопасный переход через бот
О канале

Анализ данных: SQL, Python.

Подписчиков 1,700
Тематика Технологии
Язык Русский
Ссылка t.me/business_stats

Также рекомендуем

Kekaton AI | Озвучка и клон голоса
Kekaton AI | Озвучка и клон голоса
Бот

AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.

Описание

Про анализ данных: базы данных, SQL, Python и другое для аналитиков.

Последние посты

Data analysis - DA SQL
Data analysis - DA SQL
🔒Открыть пост
и посмотреть медиа
Циклы в PL/SQL: LOOP, WHILE, FOR Циклы используются для выполнения повторяющихся операций. Полезны, когда данные надо обрабатывать построчно, но работают циклы медленно. 🟠В чем различие между LOOP, WHILE и FOR? ▶️LOOP выполняется бесконечно, пока не будет явно указано условие выхода с помощью EXIT DECLARE counter NUMBER := 1; BEGIN LOOP DBMS_OUTPUT.PUT_LINE('counter: ' || counter); counter := counter + 1; EXIT WHEN counter > 5; END LOOP; END; ▶️WHILE выполняется, пока условие истинно. Если условие ложно с самого начала, цикл не выполнится ни разу DECLARE counter NUMBER := 1; BEGIN WHILE counter 10000 THEN v_bonus := emp_rec.salary * 0.15; ELSIF MONTHS_BETWEEN(SYSDATE, emp_rec.hire_date) > 60 THEN v_bonus := emp_rec.salary * 0.10; ELSE v_bonus := emp_rec.salary * 0.05; END IF; UPDATE employees SET bonus = v_bonus WHERE employee_id = emp_rec.employee_id; END LOOP; COMMIT; END; Для начала, что делает этот скрипт? Он устанавливает размер бонуса к зарплате сотрудника: если зп > 10000, то бонус = 15%; если стаж работы в компании > 5 лет, то бонус = 10%. Для всех остальных случаев бонус = 5%. После этого таблица обновляется. 🟠Почему эта задача решается с помощью цикла, а не обычных операций со множествами? Можно было бы просто написать что-то вроде этого: UPDATE employees SET bonus = CASE WHEN salary > 10000 THEN salary * 0.15 WHEN MONTHS_BETWEEN(SYSDATE, hire_date) > 60 THEN salary * 0.10 ELSE salary * 0.05 END; В целом, можно справиться с ней и обычными множествами. Но теперь усложним задачу. Вернемся к скрипту с циклом. Представим, что вдобавок ко всему написали функцию, которая имеет входные параметры employee_id и v_bonus и которая проверяет на основании этих данных, действительно ли сотруднику положено такое вознаграждение. В случае с циклом вызов этой функции можно было бы прописать после END IF и перед UPDATE. Со множествами уже сложнее. А если подобных функций будет 10? Вот в таких ситуациях циклы могут выручить. 🟠Почему именно цикл FOR, а не LOOP или WHILE? В случае с LOOP надо было бы создавать курсор; задумываться над выходом из цикла, писать разные условия по типу "выходим из цикла, когда в таблице закончились строки". В примере с FOR это всё определяется сразу после BEGIN. С WHILE похожая ситуация: создание курсора, продумывание условий по выходу из цикла.
Data analysis - DA SQL
Динамика подписчиков
+-0.5% за 30 дней
Текущие
1,700
Месяц назад
1,709
Средний рост
+0 / день
Обновлено
21 час назад

Отзывы о канале Data analysis - DA SQL

Авторизуйтесь, чтобы оставить отзыв

Только зарегистрированные пользователи могут делиться своим мнением.

Пока нет отзывов

Станьте первым, кто поделится своим впечатлением об этом ресурсе!

Похожие ресурсы

Loading
Переход на светлую тему
Главная Каталог Подборки Блог Вход