2004 年 5 月 20 日の前後の 14 日間に物件を閲覧したクライアントの数を調べようとしています。これについてどうすればよいかまったくわかりません。
グループ化してhavingを使用する必要があると思いますか?
編集:私は今オラクルを使用しています
select count(*)
from VIEWING
WHERE CLAUSE?
その特定の日付での 1 回限りのクエリの場合、
select count(*) clients
from yourtable
where yourdatefield >= {d'2004-05-06'}
and yourdatefield < {d'2004-06-08'}
カレンダーを参照して、それらの日付が正しいかどうかを確認することをお勧めします。
編集#1、Oracleを使用しているため、次を使用できます。
select count(*) TotalClients
from yourtable
where dt >= (to_date('2004-05-20', 'yyyy-mm-dd') - INTERVAL '14' DAY)
and dt <= (to_date('2004-05-20', 'yyyy-mm-dd') + INTERVAL '14' DAY)
デモで SQL Fiddle を参照してください
以前の質問のいくつかに基づいて、MySQL を使用していました。
MySQL を使用している場合は、DATE_ADD()
関数を使用して日付範囲を取得し、使用count(*)
してそれらの日付のすべてのレコードを返すことができます。
select count(*) TotalClients
from yourtable
where dt >= date_add(str_to_date('2004-05-20', '%Y-%m-%d'), INTERVAL -14 day)
and dt <= date_add(str_to_date('2004-05-20', '%Y-%m-%d'), INTERVAL 14 day)