2025年四川楼梯厂家专业排名 - 2025年品牌推荐榜
2025/12/17 7:57:18
员工表:Employee
+---------------+---------+ | Column Name | Type | +---------------+---------+ | employee_id | int | | team_id | int | +---------------+---------+ employee_id 字段是这张表的主键(具有唯一值的列) 表中的每一行都包含每个员工的 ID 和他们所属的团队。
编写解决方案以求得每个员工所在团队的总人数。
返回结果表无顺序要求。
返回结果格式示例如下:
示例 1:
输入:Employee Table: +-------------+------------+ | employee_id | team_id | +-------------+------------+ | 1 | 8 | | 2 | 8 | | 3 | 8 | | 4 | 7 | | 5 | 9 | | 6 | 9 | +-------------+------------+输出:+-------------+------------+ | employee_id | team_size | +-------------+------------+ | 1 | 3 | | 2 | 3 | | 3 | 3 | | 4 | 1 | | 5 | 2 | | 6 | 2 | +-------------+------------+解释:ID 为 1、2、3 的员工是 team_id 为 8 的团队的成员, ID 为 4 的员工是 team_id 为 7 的团队的成员, ID 为 5、6 的员工是 team_id 为 9 的团队的成员。
思路:
这段 SQL 用到了分析函数(窗口函数),作用是:
👉在不分组的情况下,给每一行员工数据算出其所在团队的人数。
代码:
select employee_id, count(*) over( partition by team_id) as team_size from employee