You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不添加额外列的情况下用COUNT过滤SQL查询结果?

解决SQL查询中多余count列的问题

给你两种简单的解决办法,都能去掉不需要的count列:

方法一:用EXISTS子查询筛选(推荐)

直接通过子查询判断员工是否有多个技能,不需要生成额外列:

select e.employeename, s.skilldescription
from employeeskills_t k
inner join employee_t e on k.employeeid = e.employeeid
inner join skill_t s on k.skillid=s.skillid 
where exists (
    select 1
    from employeeskills_t k2
    where k2.employeeid = e.employeeid
    having count(*) > 1
)
order by employeename, skilldescription

方法二:明确指定外层查询的列

如果你想保留原有的窗口函数逻辑,只需要把外层的select *改成具体需要的列即可:

select t.employeename, t.skilldescription
from (
    select e.employeename, s.skilldescription,
        count(*) over(partition by e.employeeid) as count
    from employeeskills_t k
    inner join employee_t e on k.employeeid = e.employeeid
    inner join skill_t s on k.skillid=s.skillid 
) t
where t.count > 1
order by t.employeename, t.skilldescription

两种方法都能得到你想要的结果:只显示员工姓名和技能描述,同时只保留拥有多个技能的员工记录。

内容的提问来源于stack exchange,提问作者Xant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 02:35:19