关于数据统计的问题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
*/