Приветствую вас на моем канале. Здесь я буду рассказывать о Базах Данных, в частности о реляционных БД. Канал будет постоянно пополняться, основная задача канала это полные курсы обучения написанию SQL запросов, программированию в среде Oracle. Дополнительно выпущу ряд видео с задачами, которые попадаются на собеседованиях, по собственному опыту. В случае, если вам потребуется индивидуальная помощь и уроков не достаточно, тогда пишите мне, проведем 1..3 или более занятий (за дополнительную плату)
Непонятно чем не устроил такой запрос: select o.* from orders o join salespeople s on s.salespeople_id = o.salespeople_id and lower(s.salespeople_name) = 'петров' join customers c on o.customers_id = c.customers_id and lower(c.customers_city) = 'москва';
Добрый день select * from scott.emp e where e.deptno in ( select deptno from scott.dept where dname = 'SALES') этот запрос называется джоином? то есть это join который был сделан при помощи подзапроса ?
Добрый день! Этот запрос называется подзапросом! Join - это присоединение другой таблицы с возможностью получить оттуда результат. Здесь такого нет, только условие
Добрый день! Подскажите, пожалуйста, зачем в самом последнем запросе (where not exist) коррелирующий подзапрос в блоке where (where e.empno = el.empno)?
Добрый день! Да, курс по SQL полностью закончен. Теорию вся которая нужна я дал, практические уроки тоже были. Дальше только часы практики написания разных запросов
В задание сказано напечатать список служащих включая их имя и оклад, а потом уточнение как именно напечатать оклад если он отвечает некоторым условиям. Как по мне автор не совсем верно интерпретировал задание, условие на null нужно било вывести в отдельный when, а в ELSE нужно было значение зарплаты (число) преобразовать в стоку.
Задача 1. На тестовых данных цена запроса два раза ниже с 16 до 8 Select q.* from (Select t1.a, t1.b, count(*) as c from t1 group by t1.a, t1.b) q full join (Select t2.a, t2.b, count(*) as c from t2 group by t2.a, t2.b) w on q.a = w.a and q.b = w.b and q.c = w.c where q.a is null or q.b is null or w.a is null or w.b is null
SELECT case when (MONTH(GETDATE()) < MONTH(bday)) then YEAR(GETDATE()) - YEAR(bday) - 1 when (MONTH(GETDATE()) = MONTH(bday) AND DAY(GETDATE())<DAY(bday)) then YEAR(GETDATE()) - YEAR(bday) - 1 when (MONTH(GETDATE()) > MONTH(bday) OR (MONTH(GETDATE()) = MONTH(bday) AND DAY(GETDATE())>=DAY(bday))) then YEAR(GETDATE()) - YEAR(bday) end as ydate FROM stud
"else NULL" - мне казалось, что правильнее было написать "else sal"... Раз в условии ничего не сказано про значения выше 1500, то надо выводить значения поля, какие они есть (даже если это значение null)
select man_name,emp_name,min_sal from (select m.first_name man_name,e.first_name emp_name,e.salary emp_sal,min(e.salary) over(partition by m.first_name) min_sal from employees e left join employees m on e.manager_id=m.employee_id) where min_sal=emp_sal and min_sal>1000 order by min_sal
И по поводу задания 2, Варианта 1го, можно добавить в условие что mgr при null обработать с помощью nvl или coalesce Select empno,ename,job,deptno from public.employers where empno not in (select coalesce(mgr,0) from public.employers group by mgr)
Задание 1. В целом можно убрать в подзапросе count(*) и тогда можно будет подзапрос, вывести как финальный запрос select deptno,avg(sal) as cnt from public.employers group by deptno having count(empno)>3 and avg(sal)> (select avg(sal) from public.employers where deptno=30)
Да, но не совсем так. Сначало проверяются условия, если условие1 верно, то возвращай эту строку, потом проверка условие2 итд. ELSE же применяется, когда никакие условия выше не выполнены. То есть всё что больше 1500 и еще NULL. NULL могут быть в таблице изначально и они тоже не поменяются. Такой маленький нюанс.
@@HappyBanditPanda Как по мне автор не совсем верно интерпретировал задание, условие на null нужно било вывести в отдельный when, а в ELSE нужно было значение зарплаты (число) преобразовать в стоку.
Понимаю) Это было до появлиения отдельного микрофона. Посмотрите в каталоге, я разбил это видео на части и сделал ремастеринг. Улучшил звук, как смог..
@@databaseprogrammer6874 почему то сейчас ни пароль не подходит к аккаунту оракл, ни письмо с восстановлением пароля не приходит. ни зарегистрировать новый(
@@Just_Viktorони запретили регистрацию из России. И учётки отключили российские. Не приходят даже письма при регистрации и при использовании впн в том числе.