3

emp_infoメール、モバイル、タイムスタンプをフィールドとしてテーブルを作成しました。

過去 1 週間の記録を 1 日単位で取得したい。そして、このために私は試しました

SELECT count(*) 
FROM `emp_info` 
WHERE DATE(timestamp ) > DATE_SUB( CURDATE( ) , INTERVAL 1 WEEK ) 
ORDER BY saved_timestamp

そしてそれは合計数を示しています。過去 7 日間に入力されたレコードのうち、希望する出力ではありません。

したがって、次のような 7 日間のレコードの出力が必要です。

  Day          count
  Monday       2
  Tuesday      0
  ....         ..
  ....         ..

誰か私を助けてください。

4

2 に答える 2

1

日付から曜日を抽出してから、カウントを使用して曜日ごとにグループ化すると、各日のカウントを取得できます。

SELECT DAYOFWEEK(DATE(timestamp)), count(*) FROM `emp_info` WHERE DATE(timestamp ) > DATE_SUB( CURDATE( ) , INTERVAL 1 WEEK ) group by DAYOFWEEK(DATE(timestamp))
于 2013-05-30T12:36:07.770 に答える