作为家庭作业的一部分,我需要看看表中的两个讲座是否有相同的老师。
表由
组成lectureNr | nameOfTheLecture | hoursInWeek | professorID
我做了这件事,这很复杂,但我知道这样做只会这样做:
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;
任何人都可以为我提供更好的解决方案。
由于
答案 0 :(得分:2)
select count(distinct professorID) as prof_count
from vorlesungen
where nameOfTheLecture in ('Logik','Erkenntnistheorie')
如果计数更大1
,则它们不是同一个。
答案 1 :(得分:1)
您可以使用ANALYTIC
函数ROW_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
/