人がボタンを押すたびにログに記録するテーブルがある場合。 使用postgresの お互いの1週間に作成される行のSQL
だから私はこのようなデータの多くを持っている:PressedButton
__________
ID || userId || timestamp
__________
は、どのように私は少なくとも週に一回これを行うユーザーの数を選択することができますか?
人がボタンを押すたびにログに記録するテーブルがある場合。 使用postgresの お互いの1週間に作成される行のSQL
だから私はこのようなデータの多くを持っている:PressedButton
__________
ID || userId || timestamp
__________
は、どのように私は少なくとも週に一回これを行うユーザーの数を選択することができますか?
は一度、すでにそれをやっデフォルトで
「週に一度」週に一度行われます。あなたはスキップせずに毎週を意味しますか?
または、過去7日間にボタンを押しただけですか?
Select * From table Where timestamp>=adddate(now(),-7)
EDIT
これは正確に何をしたいではありませんが、それは
SELECT ID, distinct(userId),timestamp FROM table Group by userId Having COUNT(ID) => 2
あなたの答えをありがとう。しかし、私は定期的にもっと探しています。少なくとも2週間連続で – fromthewoods
あなたが考えなければならない方向を与えるために編集を投稿しました。 –
をそれに少なくとも2時間はない行っているすべてのユーザが表示されますでしょう 正確に何をしたいのですか?ユーザーと週ごとのボタンの数を取得するには、次のようなものを使用してください:
select userid, to_char(timestamp, 'iyyy-iw') as week, count(*)
from pressedbutton
group by userid, to_char(timestamp, 'iyyy-iw')
having count(*) > 1 --<< at least once a week
to_char(timestamp, 'iyyy-iw')
は、ISO年/ ISO週の組み合わせとしてフォーマットされたタイムスタンプを返し、カウント(*)がその週にボタンを何回押したかをカウントします。
私はpostgresを使用していますが、SQLクエリを使用するDBMSであれば、おそらくそこから作成することができます。私はちょうど正しい方向に指摘する必要があります。 @a_horse_with_no_name – fromthewoods
サンプルテーブルのデータと予想される結果(すべて画像ではなく書式付きのテキストとして)を追加してください。 – jarlh