sql

ユーザーデータを集計して、ランキングを取りたかった時のお話し。つづき

前回のjoinとgroup byを使った方法は、対象件数が増えると乗算で処理に時間が掛かるため、数万件の処理にはとても耐えられなかったので、新しくsqlを作り直した時のお話し。つまり、前回の続きです。select-insert(なんて呼ぶのかよく分からないが、insert…

ユーザーデータを集計して、ランキングを取りたかった時のお話し。

userテーブルのcountカラムを集計して、rankテーブルにデータを登録(UPDATE)するsqlです。 ---- 上のデータをrankテーブルにアップデート UPDATE ( db.rank r left join( SELECT r1.uid, r1.count, COUNT( r2.uid ) +1 as rank FROM (SELECT uid, count FR…

データベースを行単位で他のテーブルにコピーするSQL文のお話し。

テーブルをコピーする時にこんな書き方をするかと思います。 INSERT INTO `table`.`test_copy` SELECT * FROM `table`.`test`; 要は、insert文のvalueをselectで埋めてる感じ。 このやり方を初めて見た時はちょっと感動だったのが懐かしです。 行単位にコピ…