34,590
社区成员
发帖
与我相关
我的任务
分享
create table [tb]([地区] varchar(4),[评价内容] varchar(2),[好评] varchar(1))
insert [tb]
select '江苏','..','Y' union all
select '江苏','..','N' union all
select '江苏','..','Y' union all
select '山东','..','N' union all
select '山东','..','N' union all
select '山东','..','Y' union all
select '山东','..','N'
go
select 地区,
count(1) [评价次数],
sum(case 好评 when 'Y' then 1 else 0 end) [好评次数]
from tb
group by 地区
drop table tb
/*
地区 评价次数 好评次数
---- ----------- -----------
江苏 3 2
山东 4 1
(所影响的行数为 2 行)
*/
select 地区,
count(1) [评价次数],
sum(case 好评 when 'Y' then 1 else 0 end) [好评次数]
from tb
group by 地区
select
地区,
count(1) as 评价次数,
count(1) as 好评次数
from
tb where 好评(Y) ='Y'
group by
地区
----------------------------------------------------------------
-- Author :fredrickhu(我是小F,向高手学习)
-- Date :2009-12-14 15:29:29
-- Version:
-- Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)
-- Nov 24 2008 13:01:59
-- Copyright (c) 1988-2005 Microsoft Corporation
-- Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 1)
--
----------------------------------------------------------------
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([地区] varchar(4),[评价内容] varchar(2),[好评] varchar(1))
insert [tb]
select '江苏','..','Y' union all
select '江苏','..','N' union all
select '江苏','..','Y' union all
select '山东','..','N' union all
select '山东','..','N' union all
select '山东','..','Y' union all
select '山东','..','N'
--------------开始查询--------------------------
select
地区,
count(1) as 评价次数,
sum(case 好评 when 'Y' then 1 else 0 end) as 好评次数
from
tb
group by
地区
----------------结果----------------------------
/* 地区 评价次数 好评次数
---- ----------- -----------
江苏 3 2
山东 4 1
(2 行受影响)
*/
select 地区,
count(*)评价次数,
sum(case when 好评='Y' then 1 else 0 end)好评次数
from tb group by 地区
---------------------------------------------
--> Author : jinjazzli
--> Target : ---->1000
--> Date : 2009-12-14 15:27:27
--> Version: SQL Server 2005
---------------------------------------------
--> 测试数据: @tb
declare @tb table (地区 varchar(4),评价内容 varchar(2),好评 varchar(1))
insert into @tb
select '江苏','..','Y' union all
select '江苏','..','N' union all
select '江苏','..','Y' union all
select '山东','..','N' union all
select '山东','..','N' union all
select '山东','..','Y' union all
select '山东','..','N'
select
地区,
评价次数=count(*),
好评次数=sum(case when 好评='Y' then 1 else 0 end)
from @tb
group by 地区
(7 行受影响)
地区 评价次数 好评次数
---- ----------- -----------
江苏 3 2
山东 4 1
(2 行受影响)
select
地区,
count(1) as 评价次数,
sum(case 好评 when 'Y' then 1 else 0 end) as 好评次数
from
tb
group by
地区