求高手 sql 按分钟统计
ID	RegisterDate RegisterTime StudiesDoneDate StudiesDoneTime
1	20080320	152314	20080320	152629
2	20080320	152425	20080320	153100
3	20080320	153113	20080320	153543
4	20080320	153339	20080320	154206
5	20080320	154703	20080320	155504
6	20080320	154910	20080320	155417
7	20080320	155041	20080320	160022
有一个月的数据,几十万条,现在我想统计每天8:00-17:00每分钟该时刻前面有多少个已经登记(RegisterTime)的但是还没检查(StudiesDoneTim)的人次。统计结果插入到新表中。
得到的统计表:
RegisterDate    8:01  8:02  8:03 ....     16:59  17:00
20080301        人数 人数     ....         人数  人数
20080302
    ..
    ..
这只是我自己设计的统计表,问下高手这样设计 列数会不会太多,是否还有其他的设计方法
------解决方案--------------------
------解决方案--------------------
行转列,看经典代码收藏。
------解决方案--------------------SQL code
select datediff(mi,'2012-01-01 08:00:00','2012-01-01 17:00:00')+1
-----------
541
(1 row(s) affected)
------解决方案--------------------
需要的太多了吧。你用的完吗
人家看的来这么多吗
------解决方案--------------------
建议在前端程序中统计,以数组的形式保存结果,
然后,然后绘制曲线图.
------解决方案--------------------
你讲的不是很清楚啊
------解决方案--------------------
唐诗哥哥给的意见不错。你这个假如在数据库段进行行列转换的话实现也是可以的,
但是那样很不好,有好几百个字段
------解决方案--------------------
楼主那样设计,只是扩展性不好,以后你想增加某一时间点的统计,就要增加字段,这样导致之前数据存在null值或0值。相同的道理,减少某一时间点的统计,也会出现null值或0值的情况。
如果按每一天每一个时间点,设计成一行。对于扩展性就比较好。只是要考虑在数据量大的情况,行列转换的成本。
结合实际环境,对这两点做评估,你自然会找到哪一种设计比较好。