web-dev-qa-db-ja.com

1日あたりのレコード数をカウントする方法は?

次の構造を持つテーブルがあります:

CustID --- DateAdded ---

 396       2012-02-09 
 396       2012-02-09 
 396       2012-02-08 
 396       2012-02-07 
 396       2012-02-07
 396       2012-02-07 
 396       2012-02-06
 396       2012-02-06

SQLで過去7日間の1日あたりのレコード数をカウントし、これを整数として返す方法を知りたいです。

現在、次のSQLクエリが記述されています。

SELECT * 
  FROM Responses
 WHERE DateAdded >= dateadd(day, datediff(day, 0, GetDate()) - 7, 0)

RETURN

ただし、これは過去7日間のすべてのエントリのみを返します。過去7日間の1日あたりのレコード数をカウントするにはどうすればよいですか?

16
HGomez
select DateAdded, count(CustID)
from Responses
WHERE DateAdded >=dateadd(day,datediff(day,0,GetDate())- 7,0)
GROUP BY DateAdded
25
Diego
select DateAdded, count(CustID)
from tbl
group by DateAdded

約7日間の間隔、DBに依存する質問

6
triclosan
SELECT DateAdded, COUNT(1) AS NUMBERADDBYDAY
FROM Responses
WHERE DateAdded >= dateadd(day,datediff(day,0,GetDate())- 7,0)
GROUP BY DateAdded
2
Bruno Costa
SELECT count(*), dateadded FROM Responses
WHERE DateAdded >=dateadd(day,datediff(day,0,GetDate())- 7,0)
group by dateadded

RETURN

これにより、dateaddedの各値のレコード数が得られます。選択にさらに列を追加するというミスを犯さないでください。1日に1カウントしか得られません。 group by句は、リストされた列の一意のインスタンスごとに行を提供します。

0
Brian
select DateAdded, count(DateAdded) as num_records
from your_table
WHERE DateAdded >=dateadd(day,datediff(day,0,GetDate())- 7,0)
group by DateAdded
order by DateAdded
0
juergen d

タイムスタンプに日付だけでなく時刻が含まれる場合は、次を使用します。

SELECT DATE_FORMAT('timestamp', '%Y-%m-%d') AS date, COUNT(id) AS count FROM table GROUP BY DATE_FORMAT('timestamp', '%Y-%m-%d')

0
moloe

これを試すこともできます:

SELECT DISTINCT(DATE(dateadded))AS unique_date、COUNT(*)AS amount FROM table GROUP BY unique_date ORDER BY unique_date ASC

0
Shezan Kazi