La segmentation rfm classe les clients selon 3 axes :
Recence = temps depuis le dernier achat (récent = mieux)
Frequence = nombre d'achats
Montant = total depenseExemple (table commandes) :
WITH segmentation AS (
SELECT client_id,
CURRENT_DATE - MAX(date_commande)::date AS recence_jours,
COUNT(*) AS frequence,
SUM(montant) AS montant_total
FROM commandes GROUP BY client_id
)
SELECT * FROM segmentation;On utilise souvent ntile(5) pour donner un score de 1 a 5 par axe.
Rappel : l'opérateur || concatène du texte (vu à l'exercice 38) ; ::text convertit un nombre en texte, ex. r_score::text || f_score::text.
Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →