テーブルの構成が見えないので、私の方で、前提条件として書かせていただきます。
前提条件
カラムは下記とする。
id: よくあるid。通常、autoincrementしているカラム。
user_id: ユーザーアカウントのidとなる。重複idの登録あり。
toukou_kiji: 今回は重要視しないが、とりあえず雰囲気でカラムを用意します。
created_at: レコードをインサートした日時
|id | user_id | toukou_kiji | created_at|
ここからがsql
select count(user_id) as uid,user_id,created_at from テーブル名 where created_at >= DATE_ADD(NOW(),INTERVAL -1 MONTH) group by user_id having(uid) >=2;
解説
where句にて、現在から1ヶ月を絞り込みしています。
グループ句にて、同一ユーザーを、1つにまとめています。
その際、(user_id) as uid にて、カウントして、さらにカウント項目名に名前uidを付与しています。
で、最後にhaving句にて、カウントが2以上を抽出しています。