1. sqlServer怎么做复杂的统计
1、先做个函数,用来将字符串按分隔符(;)进行分解-->到Table
CREATE FUNCTION uf_strSplit(@str)
RETURNS list TABLE (
word NVarchar(100)
)
2、再利用这个分解函数,进行统计
2. sqlserver 分类汇总
selectt1.shop,sum(t1.qty)asqty,t2.sum_qtyfrom表名ast1,
(selectsum(qty)assum_qtyfrom表名)ast2
groupbyt1.shop,t2.sum_qty
时间条件你自己加一下吧,应该没问题吧?
3. sql分类统计个数
select 一,count(一) as 个数 from XXX group by 一
4. sqlserver怎么实现同一个表中多个count查询并且分组并且统计总数
可以有两种解决方法,
所需工具:SQL
查询两个count的方法1:
SELECT paperName , COUNT (1) AS 总题数 , sum (CASE WHEN statu = 1 THEN 1 ELSE 0 END) AS 审核题数FROM questionGROUP BY paperNme
查询两个count的方法2:
select s.总题数, s.审核题数, s.paperNamefrom (select COUNT(1) as 总题数, case when status = 1 then count(1) else 0 end as 审核题数, paperNamefrom question--where papername in (select distinct paperName from question), 这个条件可以不要了group by paperNme, stauts -- status也要作为分组字段,因为在case中有使用) s
5. sqlserver 分组统计
select部门字段名,sum(casesexwhen‘男’then1else0end)as'男',女=sum(casesexwhen‘女’then1else0end)
fromstudentgroupby部门字段名
别的都一样了~
6. sqlserver怎么按周来统计数据
指定一个起始日,计算到该日的天数,/7 得到经过的周数。然后按这个周数分组。
7. SQLServer的分时间段统计的SQL语句。
没看懂a和b二个表的用途,假设对表a统计。
直接统计比较困难,不过你可以先把日期转换成到最早日期的分钟数,把分钟数除以10求整,得到的新值就是每10分钟一组的了。不过新值需要保存到临时表,再对临时表分组统计。
--按上述分析将a表中的f_time转换为以最早日期为起点的每10分钟一个值的新列,如间隔8分钟,新列值为0,18分钟,新值为1.此列命名为ten,把它们复制到临时表#tj中。
select floor(datediff(mi,(select min(f_time) from a),optime)/10) ten,f_time,f_val from a into #tj where not a is null order by f_time
--对#tj按ten列分组统计,同时显示每组的起始日期好截止日期。
select ten,min(f_time) bg,max(f_time) end,sum(f_val) hj_val from #tj group by ten order by ten
--把临时表删掉
drop table #tj
8. sqlserver语句,按周分组统计数据,请各位大神指教小弟。
---把getdate()替换成你的日期字段就可以了, between and的2个日期分别是你说的2个年头年尾的情况
select case when getdate()>=cast('2014/1/1' as datetime) then datepart(week,getdate()) else 1 end as 第几周
--from table_name
where getdate() between (case when datepart(weekday,cast('2014/1/1' as datetime))<>1 then
cast('2014/1/1' as datetime)-datepart(weekday,cast('2014/1/1' as datetime))+2
end )
and
(case when datepart(weekday,cast('2014/12/31' as datetime))<>6 then
cast('2014/12/31' as datetime)-datepart(weekday,cast('2014/12/31' as datetime))+1
end )
9. SQLSERVER 如何在union all多表查询出结果后再分类汇总
提供一下参考实现:
select wo3状态,sum(wo3售价) 小计
from (
) as a
group by wo3状态
10. sqlserver 单表 分组 不同查询条件 统计 数据 。
select 姓名,
1 类型1,
sum(isnull(case when 类型=1 then 1 else 0 end,0)) 类型1的个数,
2 类型2,
sum(isnull(case when 类型=2 then 1 else 0 end,0)) 类型2的个数
from 表名
group by 姓名