現在、ECサイトのログを分析しています。
分析の中で「注文番号単位に該当顧客が何回目の購入かを知りたい」というものがあり、その取得方法について困っています。
取得したいイメージについては以下のとおりです。
【取得したいイメージ】
注文番号△顧客番号△顧客枝番△購入回数(これが取得したい)
0001△aaaa△1△1
0002△aaaa△2△1
0003△aaaa△2△2
0004△bbbb△1△1
0005△bbbb△1△2
0006△aaaa△2△3
0007△cccc△1△1
【前提】
・注文番号は注文毎にユニーク(上記テーブルのPK)
また注文番号は注文日とリンクして作成されるため、注文番号が若い順で注文日付が古い
・顧客は顧客番号と顧客枝番で一意に定まる
・購入回数は該当注文における同一顧客単位の注文回数とする(3回目であれば3が入る)
【やろうとしたこと】
できればMySQL内で関係したい(CとかPHPとかでプログラムを作らないで対応したい)ため、以下のSQLを作成しましたが、購入回数が全て1になってしまい、取得できません。
(注文番号=order_no,顧客番号=c_no,顧客枝番c_eda,購入回数=r)
SET @r := 0, @id := 0, @no := 0, @eda := 0;
UPDATE orders_seq SET cust_seq_no = (
CASE
WHEN c_no = @id AND c_eda = @eda AND order_no = @no THEN @r
WHEN c_no = @id AND c_eda = @eda THEN (@r := @r + 1) + 0*LENGTH(@no := order_no)
ELSE (@r := 1) + 0*LENGTH(@id := c_no)*LENGTH(@eda := c_eda)*LENGTH(@no := order_no)
END)
ORDER BY c_no,c_eda,order_no;
どなたか教えていただけますと幸いです。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
元データ
create table orders_seq(order_no int(4) unsigned zerofill not null unique,c_no varchar(10),c_eda int not null default 1,r int not null default 0);
insert into orders_seq(order_no,c_no,c_eda) values(1,'aaaa',1),(2,'aaaa',2),(3,'aaaa',2),(4,'bbbb',1),(5,'bbbb',1),(6,'aaaa',2),(7,'cccc',1);
更新
update orders_seq as t1
,(select t3.order_no
,(select count(*)+1 from orders_seq as t4 where t3.c_no=t4.c_no and t3.c_eda=t4.c_eda and t3.order_no>t4.order_no) as r
from orders_seq as t3) as t2
set t1.r=t2.r where t1.order_no=t2.order_no
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- その他(データベース) accessについて 2 2022/05/31 16:58
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Excel(エクセル) EXCEL 関数を教えてください。(A列の同じ値が複数ある場合vlookupで出来ますか) 4 2022/12/07 20:54
- Excel(エクセル) Excel 指定した固有番号で、複数の行を削除する方法は? 2 2022/03/30 15:18
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Visual Basic(VBA) 複数ページあるPDFファイル内の文字列等の情報をキーにPDFをグループ分け分割したい。 2 2022/06/25 09:51
- Excel(エクセル) 関数の式を教えてください 2 2022/04/04 11:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access VBAでクエリーのレコー...
-
Access フォームのデータがテー...
-
データベースの1要素に複数デー...
-
Access 既に開いているフォー...
-
テーブル1 2 3 の結合
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
「直需」の意味を教えてください
-
Access テキスト型に対する指定...
-
BLOB型のPDF出力の方法
-
ACCESSのクエリで集計で、先頭...
-
作番ってどういう意味でしょうか?
-
エクセルグラフの凡例スペース
-
アクセス メモ型 255文字...
-
Oracle 2つのDate型の値の差を...
-
accessで重複を防ぎたい
-
Accessのリンクテーブルのパス...
-
Accessでテーブル名やクエリ名...
-
Accessレコードの追加や変更が...
-
3つの表を1つに縦に連結する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access VBAでクエリーのレコー...
-
Access IF文でテーブルに存在し...
-
データベースの1要素に複数デー...
-
ワードでの単純作業の効率化に...
-
Access フォームのデータがテー...
-
ACCESS で マクロの中でフィ...
-
Accessデータベースで行と列を...
-
ワードで保存するファイル名の...
-
別のDBからテーブルをコピーす...
-
ADOでレコードを閉じるタイミン...
-
Accessで名寄せグループの関係...
-
シングルクォーテーションとダ...
-
Access 縦(行)のデータを横(列)...
-
Access クエリ このレコードセ...
-
顧客IDを入力すると顧客名や住...
-
(ACCESS)連番取得について
-
Access2000 単票フォーム上の...
-
Access 既に開いているフォー...
-
文字化け、記号の含まれるフィ...
-
Access2013VBA 複数のテーブル...
おすすめ情報