Я пытаюсь выполнить сегментацию RFM в образце набора данных Google Merchandise Store на BigQuery. В моем SQL-запросе NTILE (5) делит строки на 5 сегментов на основе порядка строк и возвращает номер блока, назначенный каждой строке. В этом случае каждое ведро имеет одинаковый размер. Хотелось бы узнать, как вместо этого создавать ведра разных размеров. Например, ведро 1 содержит нижние 10%, ведро 2 содержит следующие 20% записей и т. Д. Спасибо!
#standard SQL
SELECT
fullVisitorId,
NTILE(5) OVER (ORDER BY last_order_date) AS rfm_recency,
NTILE(5) OVER (ORDER BY count_order) AS rfm_frequency,
NTILE(5) OVER (ORDER BY avg_amount) AS rfm_monetary
FROM (
SELECT
fullVisitorId,
MAX(date) AS last_order_date,
COUNT(*) AS count_order,
AVG(totals.totalTransactionRevenue)/1000000 AS avg_amount
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_20170*`
WHERE
_table_suffix BETWEEN "101"
AND "801"
AND totals.totalTransactionRevenue IS NOT NULL
GROUP BY
fullVisitorId )