0

SQLDatetimeは初めてです。

MySQLに日時データを含むレコードがあることを考えると(以下を参照)、特定のユーザー(つまり、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

上記のデータを使用すると、ジョンが訪問する頻度は13時間になりますが、期間はおそらく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

オラクルを使用すると、次のようなものを書くことができます

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

他のRDBMSでは、同等の関数を使用して、日時フィールドから時間部分を抽出します。

于 2011-01-14T16:19:07.223 に答える