プロが教えるわが家の防犯対策術!

SQlite onlineを使用しています。

各ユーザーが1回目と2回目に買った商品のテーブル(ユーザーID,商品ID)があります。
(1回目) ユーザーA 商品01
(2回目) ユーザーA 商品01
(1回目) ユーザーB 商品Q
(2回目) ユーザーB 商品X
(1回目) ユーザーC 商品22
(2回目) ユーザーC 商品22

このようなデータから1回目も2回目も同じ商品を買ったユーザーの数をカウントしたいのですが
(上の場合ユーザーAとユーザーCの二人。ユーザーBは1回目と2回目で別の商品を買っているので違う)
どのようにSQLでクエリを書いたらよいか教えていただけないでしょうか。

よろしくお願いいたします。

A 回答 (1件)

項目が(ユーザーID,商品ID)しかないなら1回目と2回目の区別ができません。


ただ単に2回同じものを買ったというだけの抽出しかできません。

SELECT ユーザーID, 商品ID FROM テーブル
GROUP BY ユーザーID, 商品ID
HAVING COUNT(*) >= 2
    • good
    • 0
この回答へのお礼

ありがとうございます。

以前質問した下記URLの質問を分解しながら進めています。
https://oshiete.goo.ne.jp/qa/12872276.html
(今回のユーザーIDがお客様id,商品IDが店別ID)

・2回以上利用した人の抽出
・rankのよる購入順番付け

それぞれはできて、joinでつなげるところまでは行ったのですが
今回の質問のユーザーの抽出(数)と
それを一つのクエリにまとめることがうまくいかずに困っていました。

もしよろしければ、上記のURLの質問も見ていただけると助かります。

よろしくお願いいたします。

お礼日時:2022/03/30 11:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す