sQL记录:
姓名 出勤情况
张三 迟到
张三 早退
李四 迟到
李四 早退
李四 请假
要求查询结果:
姓名 出勤情况 记录条数
张三 迟到 2
张三 早退 2
李四 迟到 3
李四 早退 3
李四 请假 3
说明:“记录条数"为同姓名的记录合计。求以上查询结果的SQL语句
sQL记录:
姓名 出勤情况
张三 迟到
张三 早退
李四 迟到
李四 早退
李四 请假
要求查询结果:
姓名 出勤情况 记录条数
张三 迟到 2
张三 早退 2
李四 迟到 3
李四 早退 3
李四 请假 3
说明:“记录条数"为同姓名的记录合计。求以上查询结果的SQL语句
关注让【宝码香车】来帮您解答,本回答参考DeepSeek编写,并整理提供。
如果答案让您满意,请采纳、点赞、关注,非常感谢!
.
每日一句正能量,让它带给您好心情:生活就像一杯白开水,你往里面加什么,它就是什么味道。
.
根据您的需求,需要统计每个姓名对应的总记录数,并显示每个人的出勤情况明细。以下是实现该查询的SQL语句:
SELECT
姓名,
出勤情况,
COUNT(*) OVER(PARTITION BY 姓名) AS 记录条数
FROM 考勤表
ORDER BY 姓名, 出勤情况;
语句说明:
COUNT(*) OVER(PARTITION BY 姓名) 是窗口函数,它会按姓名分组计算每个分组内的总记录数PARTITION BY 姓名 表示按姓名字段进行分组ORDER BY 用于对结果进行排序,便于查看示例验证:
假设您的表名为考勤表,包含的数据如下:
| 姓名 | 出勤情况 |
|---|---|
| 张三 | 迟到 |
| 张三 | 早退 |
| 李四 | 迟到 |
| 李四 | 早退 |
| 李四 | 请假 |
执行上述SQL语句后,将得到以下结果:
| 姓名 | 出勤情况 | 记录条数 |
|---|---|---|
| 李四 | 迟到 | 3 |
| 李四 | 早退 | 3 |
| 李四 | 请假 | 3 |
| 张三 | 迟到 | 2 |
| 张三 | 早退 | 2 |
这样就实现了您要求的查询效果,每个人的每条出勤记录都会显示,同时"记录条数"列显示该姓名对应的总记录数。