我需要Sql查询将Table1转换为Table2
select Count(Page) as VisitingCount,CONVERT(VARCHAR(5),Date, 108) as [Time] from scr_SecuristLog
where Date between '2009-04-30' and '2009-05-02'
and [user] in(select USERNAME
from scr_CustomerAuthorities where customerID=Convert(varchar,4) and ID=Convert(varchar,43) )
group by CONVERT(VARCHAR(5),Date, 108) order by CONVERT(VARCHAR(5),Date, 108) asc
表1
VisitingCount日期
如何更改表格下方的表格
表2
VisitingCount日期答案 0 :(得分:1)
使用case语句创建一个类别,然后按该类别进行计数。
对于(过度简化)的例子。
select case when Date < '15:30' then '15:00 - 15:30'
when Date < '16:00' then '15:30 - 16:00'
else 'After 16:00' end as category
into #temp1
from Table1
select count(*) as VistingCount, category as Date
from #temp1
group by category
答案 1 :(得分:0)
在另一个帖子中查看我的帖子 - If statement SQL
您可以使用一个表来定义您想要计算每个计数的边界。例如。你会有一个约束定义,如('15:01','15:30','15:00-15:30')。然后,您只需将数据表加入此边界表,并在GROUP BY中包含时间段(如另一个线程所示)。