1

私は mysql を使用していますが、特定の日付範囲のユーザー/訪問者の数をカウントするクエリを考えるのに苦労しています。私が現在行っている方法は、php を使用することです。日付範囲を選択し、for ループでデータを処理してから、そこでカウントします。実際には非常に簡単ですが、問題は、この方法が数百万行の大きなデータに対して機能しないことです。別の方法は、mysql のみを使用して個別の値をカウントし、タイムスタンプ列のインデックスを利用して実際のデータではなくカウントを返すことです。また、列を日時に変換することはオプションではありません。これを達成する方法はありますか?

必要なもののサンプル結果セットは次のとおりです。

date     | count
5-01-13     14
5-02-13     44
5-03-13     23
5-04-13     13

私の問題は、タイムスタンプ列を日ごとにグループ化する方法がわからないことです。

4

2 に答える 2

5

それはトリックを行う必要があります:

SELECT DATE('datetimecolumn'), COUNT(*) 
  FROM Table 
 GROUP BY DATE('datetimecolumn')
于 2013-05-21T03:55:02.107 に答える
0

同じことをする必要がありますが、代わりに group by 句を追加します。

SELECT myDate, count(distinct myField) as cnt
FROM myTable
WHERE myDate BETWEEN ? and ?
GROUP by myDate;

どこ "?" 元のクエリで使用する日付です。

于 2013-05-21T04:50:53.783 に答える