前提・実現したいこと
ユーザーが一定期間、同一端末を使用しているか調べるクエリを書こうと思っています。
条件としては、
・端末使用開始日はstart_dateでdataテーブルの中に入っています。
・今回起算日となるtrouble_dateが存在した2週間の期間の中で1日後,2日後,3日後・・・14日後いずれかの日にも期間中に端末を変更する事があれば、データとして除外する形にしたいです。
クエリとしては機能しませんがニュアンスとしては下記のようなものを想定しています。
14日間に一度でも、の条件の入れ方が分からず詰まってます。よろしくお願いします。
該当のソースコード
SQLite
1SELECT user_id,serial_number,start_date,trouble_date 2FROM data 3WHERE start_date <= trouble_date 4AND serial_number=serial_number AND trouble_date interval -14 5
説明が少し分からないのですが、言い方を変えると、trouble_dateに値があったとして、start_date からtrouble_date までの期間が14日を超えていたら除外しない、ということでしょうか。
間違えて関係の無い記述をしてしまい申し訳ありません。
trouble_dateの直後14日間であり、start_dateとの差分は特に関係がありません。
すみません、相変わらず分からないのですが、trouble_dateの直後14日間に何があると除外する(あるいは除外しない)のでしょうか。
trouble_dateの直後14日間の間に、別のserial_numberのstart_dateがある、つまり別の端末を使ったか否か、なのでしょうか。それもstart_dateは関係ないのですか。
※この質問を読んだ他の閲覧者、回答者の方も恐らく分からないのではないか?と懸念してのコメントです。
ああ、質問件名で「継続期間中に1度でもid変更があった場合除外したい」とありますね。
つまり、trouble_dateの直後14日間の間に、同じユーザーのidで別のserial_numberのstart_dateがある(<別の端末を使い始めた?)ものは除外する、というのが正しいでしょうか。
はい、別の端末を使い始めるとserial_numberが変わる形です。ユーザーidに対しtrouble_dateが存在し、直後14日間に端末変更があった場合(serial_number)が切り替わった場合除外したい形です…
start_dateとtrouble_dateには、どういった型の、どのような値が入りますか?
こちらも漏れていて申し訳ないです。start_date、trouble_date共にdate型になります。2019-01-01のような形です。
正確に言うと、SQLiteはカラムの型にDate相当は無いので、"YYYY-MM-DD"な日付の文字列でしょうね。
回答1件
あなたの回答
tips
プレビュー