日期:2014-05-18  浏览次数:20401 次

◆◆◆◆◆◆一个关于统计的简单的SQL问题,解决了马上给分,大虾们快帮忙啊◆◆◆◆◆◆
举个例子吧,假设一个关于统计广告的表table1是这样的
actiontime       FLAG(0弹出,1点击)

如果我要按天统计每天的广告量,肯定是这样的
select   day(actiontime),   count(*)   from   table1   group   by   day(actiontime)

但是我希望第一例是天数,第二例是广告量,第三例是点击量(即FLAG为1)的量,这样的SQL语句能写出来么?

也就是在select   day(actiontime),   count(*)   from   table1   group   by   day(actiontime)的基础是增加一例能算是FLAG为1时的数量,谢谢大家了



------解决方案--------------------
select day(actiontime), count(*), SUM(Case FLAG When 1 Then 1 Else 0 End) As 点击量 from table1 group by day(actiontime)
------解决方案--------------------
select a.*,b.点击量 from
(select convert(varchar(10),actiontime,120) actiontime,count(*) as 广告量 from tb group by convert(varchar(10),actiontime,120)) a,
(select convert(varchar(10),actiontime,120) actiontime,count(*) as 点击量 from tb where FLAG=1 group by convert(varchar(10),actiontime,120)) b
where a.actiontime = b.actiontime