User Tools

Site Tools


kurs:correlated_subquery
with cte_multiple_last_names as (
select last_name,
       count(*) c
  from hr.employees
  group by last_name
  having count(*) > 1
  order by c desc
)
select employee_id,
   first_name,
   last_name
from hr.employees where last_name 
  in (select last_name from cte_multiple_last_names)


select 
  emp.first_name,
  emp.last_name
from 
  hr.employees emp
where 
  (select count(last_name) from hr.employees emp_sub where emp_sub.last_name = emp.last_name) > 1

<code>
select first_name, last_name, e.employee_id, c from employees e,
(select employee_id, count(employee_id) c from job_history 
group by employee_id 
having count(employee_id) >= 2) g
where e.employee_id = g.employee_id

select first_name, last_name, employee_id from employees e
where (select count(*) from job_history where employee_id = e.employee_id) >= 2 


select  first_name, last_name from employees e where
-- employee_id in (select manager_id from employees where e.employee_id = manager_id)
exists (select 1 from employees where e.employee_id = manager_id)
select first_name, last_name, e.employee_id, c from employees e,
(select employee_id, count(employee_id) c from job_history 
group by employee_id 
having count(employee_id) >= 2) g
where e.employee_id = g.employee_id

select first_name, last_name, employee_id from employees e
where (select count(*) from job_history where employee_id = e.employee_id) >= 2 
select * from (
SELECT tst_fahrzeuge.fhz_name, count(tst_extras.ext_name) c
  FROM tst_extras, tst_fahrzeuge, tst_fhz_ext_int
 WHERE (    (tst_extras.ext_id = tst_fhz_ext_int.fei_ext_id)
        AND (tst_fahrzeuge.fhz_id = tst_fhz_ext_int.fei_fhz_id)
       )
group by fhz_name     
) where c > 1


select fhz_name from tst_fahrzeuge outer 
where (
SELECT count(ext_name) c
  FROM tst_extras, tst_fahrzeuge inner, tst_fhz_ext_int
 WHERE (    (ext_id = fei_ext_id)
        AND (inner.fhz_id = fei_fhz_id)
        and  outer.fhz_name = inner.fhz_name
       )) > 1
with emp_per_country as (
SELECT dep.department_id, 
    department_name,
    cou.country_id,
    country_name, 
    COUNT(employee_id) c
FROM hr.employees emp
JOIN hr.departments dep
ON emp.department_id = dep.department_id
JOIN hr.locations loc
ON loc.location_id = dep.location_id
JOIN hr.countries cou
ON cou.country_id = loc.country_id
GROUP BY dep.department_id, department_name, cou.country_id, country_name
ORDER BY COUNT(employee_id) DESC
)
select country_name, department_name, c from emp_per_country o
where c = (select max(c) from emp_per_country where country_id = o.country_id)
kurs/correlated_subquery.txt · Last modified: 2022/03/15 10:39 by admin