Sql 仅检查重复行
我想检查类别中的所有年份是否相同,如果相同,则返回, 所以我只想返回4和5。我可以得到这张桌子,但不能再多了Sql 仅检查重复行,sql,oracle,date,join,group-by,Sql,Oracle,Date,Join,Group By,我想检查类别中的所有年份是否相同,如果相同,则返回, 所以我只想返回4和5。我可以得到这张桌子,但不能再多了 SELECT st.category, EXTRACT ( YEAR FROM hiredate) as YEAR FROM NIKOVITS.EMP e, NIKOVITS.SAL_CAT st WHERE e.sal > st.lowest_sal AND e.sal < st.highest_sal 选择 圣彼得堡, 提取(从hiredat
SELECT
st.category,
EXTRACT ( YEAR FROM hiredate) as YEAR
FROM NIKOVITS.EMP e,
NIKOVITS.SAL_CAT st
WHERE e.sal > st.lowest_sal AND e.sal < st.highest_sal
选择
圣彼得堡,
提取(从hiredate提取的年份)作为年份
来自NIKOVITS.EMP e,
NIKOVITS.SAL_猫街
其中e.sal>st.lower\u sal和e.sal
您可以使用聚合:
select st.category, min(extract(year from e.hiredate)) yr
from nikovits.emp e
inner join nikovits.sal_cat st
on e.sal > st.lowest_sal
and e.sal < st.highest_sal
group by st.category
having min(extract(year from e.hiredate)) = max(extract(year from e.hiredate))
选择标准类别,最小(提取(从e.hiredate提取的年份))年
来自nikovits.emp e
内连接nikovits.sal_cat st
在e.sal>st.Lower_sal上
和e.sal
请注意,此查询使用标准联接语法(带有on
关键字),而不是隐式联接(在from
子句中带有逗号)。这种几十年前的旧语法不应该在新代码中使用
此外,查询中的所有列都应该使用它们所属的表进行限定,以避免歧义;我假设hiredate
属于表emp