在sql中更改表格单元但如何?

时间:2009-05-05 14:30:21

标签: sql sql-server sql-server-2005

我需要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日期
1 ------------------- 15:09
3 ------------------- 15:10
7 ------------------- 15:15
1 ------------------- 15:39
2 ------------------- 15:40
3 ------------------- 15:47


<小时/>

如何更改表格下方的表格


<小时/>

表2

 VisitingCount日期
11 ------------------- 15:00-15:30
6 ------------------- 15:30-16:00

2 个答案:

答案 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中包含时间段(如另一个线程所示)。