【问题标题】:Checking only for duplicate rows仅检查重复行
【发布时间】:2020-04-14 18:01:57
【问题描述】:

我想检查类别中的所有年份是否相同,如果是则返回, 所以我只想返回 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

【问题讨论】:

    标签: sql oracle date join group-by


    【解决方案1】:

    你可以使用聚合:

    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))
    

    请注意,此查询使用带有on 关键字的标准 连接语法)而不是隐式连接(在from 子句中使用逗号)。这种几十年前的旧语法不应该在新代码中使用。

    此外,查询中的所有列都应使用它们所属的表进行限定,以避免歧义;我假设hiredate 属于表emp

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多