MySQLで十分位数を計算して、最良の顧客を特定できます。基本的に、総売上高に基づいて顧客を10のグループにランク付けしてグループ化します。結果に基づいて、より焦点を絞った、関連性の高い保持イニシアチブを考え出すことができます。これを行うための既製のクエリがあります。
MySQLで十分位数を計算する
例:テーブルの注文があります これには、各ユーザーのすべての製品注文が含まれています。 MySQLで十分位数を計算したい。
order +-----------+------------+----------+ | user_id | product | sales | +-----------+------------+----------+ | 1 | Soap | 10 | | 4 | Perfume | 100 | | 1 | Noodles | 20 | | 3 | Deo | 200 | +-----------+------------+----------+
deciles +-----------+----------+---------+---------------+ | user_id | total | rank | decile | +-----------+----------+---------+---------------+ | 1 | 30 | 3 | 3 | | 4 | 100 | 2 | 7 | | 3 | 200 | 1 | 10 | +-----------+----------+---------+---------------+
合計に基づいてMySQLの十分位数を計算するために使用できるクエリは次のとおりです。列(user_id、sales、table)を置き換えるだけです。各ユーザーの総売上高を集計します。次に、それらを総売上高でランク付けします。最後に、ランクを使用して十分位数を計算します。
select user_id,total,rank,round(10*(cnt-rank+1)/cnt,0) as decile from (SELECT user_id,total,@curRank := @curRank + 1 AS rank FROM (select user_id,sum(sales) as total from `order` group by user_id) p, (SELECT @curRank := 0) r ORDER BY total desc ) as dt,(select count(distinct user_id) as cnt from `order`) as ct
テーブル内の各ユーザーの総売上高がすでにあり、テーブルを直接使用して十分位数を計算する場合は、次のクエリを使用します