入职年月 姓名
2008 01 20 1
2011 07 01 2
2009 12 20 3
2009 11 20 4
2010 12 31 5
2006 08 19 6
2007 03 12 7
2008 06 20 8
2010 07 03 9
2006 10 20 10
上半年入职和下半年入职的工人分别有多少人?要用一句SQL来完成
答案:6 悬赏:60
解决时间 2021-11-10 02:09
- 提问者网友:月葬花瑰
- 2021-11-09 11:45
最佳答案
- 二级知识专家网友:虚伪的现实
- 2021-11-09 11:51
select DATEPART(YY,MIN(入职年月)) 年份,
时间=case
when DATEPART(MM,MIN(入职年月))<=6 then '上半年'
else
'下半年'
end,
COUNT(*) 人数
from 【表名】
group by DATEPART(YY,入职年月),(DATEPART(MM,入职年月)-1)/6
order by 年份
把【表名】改成你实际的表名就可以用了。
时间=case
when DATEPART(MM,MIN(入职年月))<=6 then '上半年'
else
'下半年'
end,
COUNT(*) 人数
from 【表名】
group by DATEPART(YY,入职年月),(DATEPART(MM,入职年月)-1)/6
order by 年份
把【表名】改成你实际的表名就可以用了。
全部回答
- 1楼网友:青春如此荒謬
- 2021-11-09 15:42
5楼正解
- 2楼网友:湫止没有不同
- 2021-11-09 14:57
select sum(case when month(入职年月) <= 6 then 1 else 0 end) 上半年人数,
sum(case when month(入职年月)>= 7 then 1 else 0 end) 下半年人数
from talbe
- 3楼网友:萌萌哒小可爱
- 2021-11-09 14:33
上半年是什么意思 2008年上半年?
你想怎么划分 用 6月?
然后接条件 where 不就行了吗
最后count一下
- 4楼网友:陪我到地狱流浪
- 2021-11-09 13:27
select sum(case when month(入职年月)<=6 then 姓名 else 0 end) 上半年入职,
sum(case when month(入职年月)>=7 then 姓名 else 0 end) 下半年 from 表名
- 5楼网友:有钳、任性
- 2021-11-09 12:54
select datediff(year,join_time,getdate()) as 入职年限, count(*) as 入职人员数 from t_employee where datediff(year,join_time,getdate()) >= 2 group by datediff(year,join_time,getdate())
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯