0

我是 SQL 日期时间的新手。

考虑到我在 MySQL 中有包含 Datetime 数据的记录(如下所示),为特定用户(即 john)获取这些记录最频繁出现的 HOUR 或范围/周期的最佳方法是什么?

ID      | Datetime            | User      | Activity
0    2010-03-29 13:15:56        john         visit
1    2010-03-29 13:13:14        ariel        visit
2    2010-03-29 13:09:13        john         visit
3    2010-03-29 13:07:21        john         visit
4    2010-02-23 12:21:03        john         visit
5    2010-02-23 12:01:03        john         visit
6    2010-02-23 11:01:03        john         visit
7    2010-02-23 02:01:03        john         visit

根据上述数据,john访问的频繁时间为13,而 period 可能12-13

目标是找到用户进行某项活动最多的时段/时间。

提前感谢所有帮助!

4

2 回答 2

0

它可以取决于您使用的数据库,但在 mysql 中:

SELECT COUNT(id) as count, HOUR(Datetime) as hour FROM table GROUP BY hour ORDER BY count DESC LIMIT 1

(见http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

于 2011-01-14T16:18:08.737 回答
0

使用 oracle,您可以编写类似

select TO_CHAR(Datetime, 'HH24'), count(ID) from Table group by TO_CHAR(Datetime, 'HH24')

在其他 RDBMS 上使用等效函数从 Datetime 字段中提取小时部分。

于 2011-01-14T16:19:07.223 回答