Regroupement par classes

Analyser des données métier en SQL

Michel Semaan

Data Scientist

Histogrammes - rappel

WITH user_orders AS (
  SELECT
    user_id,
    COUNT(DISTINCT order_id) AS orders
  FROM meals
  JOIN orders ON meals.meal_id = orders.meal_id
  GROUP BY user_id)

SELECT
  orders,
  COUNT(DISTINCT user_id) AS users
FROM user_orders
GROUP BY orders
ORDER BY orders ASC
LIMIT 5;
Analyser des données métier en SQL

Expression CASE

Requête

SELECT
  CASE
    WHEN meal_price < 4 THEN 'Repas bon marché'
    WHEN meal_price < 6 THEN 'Repas à prix moyen'
    ELSE 'Repas cher'
  END AS price_category,
  COUNT(DISTINCT meal_id)
FROM meals
GROUP BY price_category;
Analyser des données métier en SQL

Regroupement par classes - requête

WITH user_revenues AS (
  SELECT
    user_id,
    SUM(meal_price * order_quantity) AS revenue
  FROM meals
  JOIN orders ON meals.meal_id = orders.meal_id
  GROUP BY user_id)

SELECT CASE WHEN revenue < 150 THEN 'Utilisateurs à faible revenu' WHEN revenue < 300 THEN 'Utilisateurs à revenu moyen' ELSE 'Utilisateurs à revenu élevé' END AS revenue_group, COUNT(DISTINCT user_id) AS users FROM user_revenues GROUP BY revenue_group;
Analyser des données métier en SQL

Regroupement par classes - résultat

revenue_group        users
------------------  -----
Faible revenu        473
Revenu moyen         606
Revenu élevé         225
Analyser des données métier en SQL

Histogrammes vs graphiques en barres

Histogramme des commandes par utilisateur

Utilisateurs par groupe de revenu (diagramme en barres)

Analyser des données métier en SQL

Regroupement par classes

Analyser des données métier en SQL

Preparing Video For Download...