解答
224
SQL文(クエリ)
WITH master AS (
SELECT
user_id
, COUNT(DISTINCT order_id) AS orders
, SUM(revenue) AS total_revenue
, MAX(date_time) AS recent_order_date_time
FROM
sample.sales
GROUP BY
user_id
)
SELECT
COUNT(DISTINCT user_id) AS users
FROM
(
SELECT
user_id
, recency + frequency + monetary AS total_score
FROM
(
SELECT
user_id
, NTILE(5) OVER (ORDER BY recent_order_date_time DESC)
AS recency
, NTILE(5) OVER (ORDER BY orders DESC)
AS frequency
, NTILE(5) OVER (ORDER BY total_revenue DESC)
AS monetary
FROM
master
)
)
GROUP BY
total_score
HAVING total_score = 3
結果テーブル
※「23」「24」「25」「26」「27」のいずれも正解になり得ます。



