1

ユーザーが特定の時間範囲内に行ったアクティビティのレポートを生成しようとしています。

これは、「登録」と呼ばれる私のテーブルの構造です。ユーザーが Web サイトでアクションを実行するたびに、ユーザーの ID、ユーザーが実行したアクションのタイプ、および日付がテーブルに記録されます。 PHP 関数 time() によって提供されます。テーブルは次のようになります。

iduser | Action | Date
82919  |  0     | 1339081680
89754  |  5     | 1339084560
88135  |  1     | 1339585320
82919  |  0     | 1339083420
26367  |  1     | 1349096510

次のクエリを使用して、時間範囲内のレコードを選択しました。

SELECT * FROM register WHERE date>='$BeginningDate' AND date<'$EndDate' ORDER BY date DESC

このクエリは素晴らしく機能しますが、特定の時間範囲に属するレコードのリストを生成するだけでなく、その時間内により多くのレコードを持つ上位 10 人のユーザーを計算するクエリの書き方もわかりません。 . サブクエリを書いてみましたが、そのトピックは現在のスキルを超えています。

4

1 に答える 1

4
SELECT COUNT(*), iduser
FROM register 
WHERE date>='$BeginningDate' AND date<'$EndDate'
GROUP BY iduser
ORDER BY COUNT(*) DESC
LIMIT 10

「トップ10」の複数のユーザーの数が同じである場合、最初の10のみが使用されることに注意してください。より複雑なものが必要な場合は、追加の変更を検討する必要があります。

于 2012-07-04T20:21:03.847 に答える