Pantek Library
Hosting Provided By
CybrHost
High Speed Hosting

Re: Group by time range.

From: Baron Schwartz <baron(at)xaprb.com>
Date: Tue Oct 30 2007 - 17:08:21 EDT


Hi,

Chris W wrote:
> I have the following query...
> SELECT CreateDate, count( * )
> FROM `userprofile`
> GROUP BY CreateDate
>
>
> It isn't exactly what I want. Records are added to this table in 2 main
> ways. First people use the web site interface to create records. In
> this case, records are only added by one or 2 people and with a
> significant time between record inserts. The second way is through an
> import that reads data from a text file. In the second case the date on
> the records will all be close together with about 60 records added per
> second. What I want to do is find all the groups where the inserts all
> happened with in say 10 seconds. So my group by would be more like......
>
> GROUP BY CreateDate +- 10 SECOND

Convert the date to a number of seconds, then round to the nearest 20 seconds and convert it back to a date. You can use FROM_UNIXTIME() and UNIX_TIMESTAMP() for the conversion. You can round to the nearest 20 seconds by dividing by 20, rounding to the nearest whole number, and multiplying by 20 again. Group by the resulting expression.

Baron

-- 
MySQL General Mailing List
For list archives: 
http://lists.mysql.com/mysql
To unsubscribe:    
http://lists.mysql.com/mysql?unsub=lists@pantek.com
Received on Tue Oct 30 17:09:24 2007

This archive was generated by hypermail 2.1.8 : Thu Jul 03 2008 - 08:43:35 EDT


Contact Us  Legal Notices  Order Services Online 
Pantek Home  Privacy Policy  IT news  Site Map  Pantek Library