用于获取用户最频繁的时间和/或时间段的 SQL 语句

发布于 2024-10-12 01:32:21 字数 731 浏览 2 评论 0原文

我是 SQL 日期时间新手。

考虑到我在 MySQL 中有带有日期时间数据的记录(如下所示), 获取特定用户(即约翰)的这些记录最频繁出现的小时或范围/期间的最佳方法是什么?

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,而期间可能为 12-13

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

提前感谢您的所有帮助!

I'm new to SQL Datetime.

Considering I have records in MySQL with Datetime data (as seen below),
what is the best way to get the most frequent occurring HOUR or range/period for these records for a particular user (i.e. john)?

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

With the above data,
the frequent hour for john doing visit would be 13, while period would be perhaps 12-13.

The goal is to find the period/time that the user does a certain activity most.

Thanks in advance for all the help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

别忘他 2024-10-19 01:32:21

它可能取决于您使用的数据库,但在 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

It can depend on the database you're using, but in mysql :

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

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

宁愿没拥抱 2024-10-19 01:32:21

使用 Oracle,您可以编写类似于

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

其他 RDBMS 的代码,使用等效函数从日期时间字段中提取小时部分。

with oracle you can write something like

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

on other RDBMS use equivalent function to extract hour part from Datetime field.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文