Przejdź do treści

SQL. Wyrażenie CASE WHEN. Segmentacja kampanii na brand, non-brand i DSA w jednej kolumnie.

Na czym to polega w sklepie

Ile czasu tracisz na osobne filtry brand / non-brand / Shopping w każdym raporcie? CASE WHEN buduje kolumnę segmentu w jednym zapytaniu - np. kampanie z nazwą marki vs reszta Search. Jeden eksport, jeden pivot w BI, szybsza odpowiedź na pytanie: czy brand cannibalizuje non-brand?

Przykład ze sklepu internetowego

Hurtownia B2B prowadzi dziesiątki kampanii Search. Potrzebujesz kolumny search_segment do tygodniowego podziału budżetu między brand a prospecting:

SELECT
  campaign_name,
  cost_pln,
  revenue_pln,
  CASE
    WHEN REGEXP_CONTAINS(LOWER(campaign_name), r'brand|marka|nazwa_sklepu') THEN 'brand'
    WHEN campaign_type = 'DSA' THEN 'dsa'
    WHEN campaign_type = 'Shopping' THEN 'shopping'
    ELSE 'non-brand'
  END AS search_segment
FROM campaign_performance
WHERE report_date >= '2026-06-01';

Co zrobić po stronie biznesu

  • Dodaj flagę ROAS tier (scale / hold / pause) - media buyer dostaje gotową listę akcji z jednego SQL.
  • Oznacz klientów new vs returning po dacie pierwszego zamówienia - inna strategia remarketingu dla każdej grupy.
  • Gdy reguł segmentacji jest więcej niż ~10, przenieś mapowanie do tabeli wymiarów - łatwiejsza zmiana bez edycji zapytań.

W skrócie

CASE w SELECT to szybki segment bez osobnej tabeli wymiarów. Kolejność warunków WHEN ma znaczenie - bardziej szczegółowe reguły daj wyżej, żeby brand nie wpadł do „non-brand".