2014-12-05 3 views
0

как часть домашней работы Мне нужно увидеть, есть ли у двух лекций в таблице один и тот же учитель.Сравнение двух строк в таблице

таблица состоит из

lectureNr | nameOfTheLecture | hoursInWeek | professorID 

Я сделал assingment, это сложно, но я знаю только, чтобы сделать это таким образом:

select distinct ( 
     case when 
     (select professorID from vorlesungen where nameOfTheLecture like 'Logik')= 
     (select professorID from vorlesungen where nameOfTheLecture like 'Erkenntnistheorie') 
     then 'yes' else 'no' end) 
from vorlesungen; 

может кто-нибудь sugest мне лучше solutiuon для этого ,

Благодаря

ответ

2
select count(distinct professorID) as prof_count 
from vorlesungen 
where nameOfTheLecture in ('Logik','Erkenntnistheorie') 

, если число больше 1, то они не являются такими же один.

+1

простой и elegenat, спасибо – depecheSoul

1

Вы можете использовать функцию ANALYTICROW_NUMBER.

with data as(
select lectureNr, 
     nameOfTheLecture, 
     hoursInWeek, 
     professorID, 
     row_number() over(partition by professorID order by professorID, nameOfTheLecture) rn 
from vorlesungen 
where nameOfTheLecture in ('Logik','Erkenntnistheorie') 
) 
select * from data 
where rn > 1 
/
Смежные вопросы