各位大侠,我是新手学习数据库时间不算长,有个问题想咨询一下,我在asp中有个表想统计出来数据,但是不知道如何做,网上查了一些,半明白不明白,我还是做不出来数据表: id 发布者 新闻题目 新闻内容 审核
-------------------------------------------
001 用户a 新闻1 内容1 是
002 用户a 新闻2 内容2 是
003 用户b 新闻3 内容3 是
004 用户b 新闻4 内容4 否
005 用户b 新闻5 内容5 否
006 用户b 新闻6 内容6 否
007 用户c 新闻7 内容7 是
008 用户c 新闻8 内容8 是
009 用户c 新闻9 内容9 是-------------------------------------------想要统计用户 a,b,c的发稿量和通过审核的发稿量,按发稿通过审核量排序,如何用select 语句选择?需要的效果 用户 发稿量 审核通过量
-------------------------------------------
用户c 3 3
用户a 2 2
用户b 4 1
-------------------------------------------
001 用户a 新闻1 内容1 是
002 用户a 新闻2 内容2 是
003 用户b 新闻3 内容3 是
004 用户b 新闻4 内容4 否
005 用户b 新闻5 内容5 否
006 用户b 新闻6 内容6 否
007 用户c 新闻7 内容7 是
008 用户c 新闻8 内容8 是
009 用户c 新闻9 内容9 是-------------------------------------------想要统计用户 a,b,c的发稿量和通过审核的发稿量,按发稿通过审核量排序,如何用select 语句选择?需要的效果 用户 发稿量 审核通过量
-------------------------------------------
用户c 3 3
用户a 2 2
用户b 4 1
if object_id('tempdb.dbo.#T1') is not null drop table #T1
create table #T1 (id varchar(3),发布者 varchar(5),新闻题目 varchar(5),新闻内容 varchar(5),审核 varchar(2))
insert into #T1
select '001','用户a','新闻1','内容1','是' union all
select '002','用户a','新闻2','内容2','是' union all
select '003','用户b','新闻3','内容3','是' union all
select '004','用户b','新闻4','内容4','否' union all
select '005','用户b','新闻5','内容5','否' union all
select '006','用户b','新闻6','内容6','否' union all
select '007','用户c','新闻7','内容7','是' union all
select '008','用户c','新闻8','内容8','是' union all
select '009','用户c','新闻9','内容9','是'select 发布者,count(*) as 发稿量,
isnull(sum(case when 审核='是' then 1 else 0 end),0) as 审核通过量
from #T1
group by 发布者 order by 审核通过量 desc/*
发布者 发稿量 审核通过量
----- ----------- -----------
用户c 3 3
用户a 2 2
用户b 4 1
*/
isnull(sum(case when 审核='是' then 1 else 0 end),0) as 审核通过量
from tb
group by 发布者 order by 审核通过量 desc
isnull(sum(case when 审核='是' then 1 else 0 end),0) as 审核通过量
from tb
group by 发布者 order by 审核通过量 desc
from tb
grpu by 用户
if object_id('tempdb.dbo.#T1') is not null drop table #T1
create table #T1 (id varchar(3),发布者 varchar(5),新闻题目 varchar(5),新闻内容 varchar(5),审核 varchar(2))
insert into #T1
select '001','用户a','新闻1','内容1','是' union all
select '002','用户a','新闻2','内容2','是' union all
select '003','用户b','新闻3','内容3','是' union all
select '004','用户b','新闻4','内容4','否' union all
select '005','用户b','新闻5','内容5','否' union all
select '006','用户b','新闻6','内容6','否' union all
select '007','用户c','新闻7','内容7','是' union all
select '008','用户c','新闻8','内容8','是' union all
select '009','用户c','新闻9','内容9','是'select 发布者,count(*) as 发稿量,
审核通过量 = (select count(审核) from #t1 where 发布者=a.发布者 and 审核='是')
from #T1 a
group by 发布者 order by 审核通过量 descdrop table #t1 /*
发布者 发稿量 审核通过量
----- ----------- -----------
用户c 3 3
用户a 2 2
用户b 4 1
*/