首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于数据统计的有关问题group by

2013-06-19 
关于数据统计的问题group by图书编号状态管理员管理组长管理主任0001完好G1L1D10002轻微破损G1L1D10003严

关于数据统计的问题group by
图书编号状态管理员管理组长管理主任
0001完好G1L1D1
0002轻微破损G1L1D1
0003严重破损G2L2D2
0004完好G3L3D2
0005完好G1L1D1
0006完好G4L2D2
0007轻微破损G5L4D1


要求按管理主任统计

管理主任管理组长管理员图书数量完好的数量

这个查询统计要如何写啊?还请各位指点一下,谢谢
[解决办法]
不知道你那个图书数量是总数还是对应主任的数量,两种方式你自己挑

----------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-05-22 10:40:41
-- Version:
--      Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) 
--Jun 17 2011 00:54:03 
--Copyright (c) Microsoft Corporation
--Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1, v.721)
--
----------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([图书编号] varchar(4),[状态] varchar(8),[管理员] varchar(2),[管理组长] varchar(2),[管理主任] varchar(2))
insert [huang]
select '0001','完好','G1','L1','D1' union all
select '0002','轻微破损','G1','L1','D1' union all
select '0003','严重破损','G2','L2','D2' union all
select '0004','完好','G3','L3','D2' union all
select '0005','完好','G1','L1','D1' union all
select '0006','完好','G4','L2','D2' union all
select '0007','轻微破损','G5','L4','D1'
--------------开始查询--------------------------

select 管理主任, 管理组长, 管理员,COUNT(1) 图书数量,COUNT(CASE WHEN 状态='完好' THEN  1 ELSE 0 END ) 完好的数量 
from [huang]
GROUP BY 管理主任, 管理组长, 管理员
----------------结果----------------------------
/* 
管理主任 管理组长 管理员  图书数量        完好的数量
---- ---- ---- ----------- -----------
D1   L1   G1   3           3
D1   L4   G5   1           1
D2   L2   G2   1           1
D2   L2   G4   1           1
D2   L3   G3   1           1
*/

热点排行