1

2004 年 5 月 20 日の前後の 14 日間に物件を閲覧したクライアントの数を調べようとしています。これについてどうすればよいかまったくわかりません。

グループ化してhavingを使用する必要があると思いますか?

編集:私は今オラクルを使用しています

select count(*)
from VIEWING
WHERE CLAUSE?
4

2 に答える 2

2

その特定の日付での 1 回限りのクエリの場合、

select count(*) clients
from yourtable
where yourdatefield >= {d'2004-05-06'}
and yourdatefield < {d'2004-06-08'}

カレンダーを参照して、それらの日付が正しいかどうかを確認することをお勧めします。

于 2013-02-05T17:49:28.600 に答える
1

編集#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)

于 2013-02-05T17:52:43.483 に答える