пытается рассчитать процентное содержание в SQL - HUE IMPALA - PullRequest
0 голосов
/ 18 марта 2019

спасибо за чтение

Я пытаюсь использовать SQL для вычисления процентов от числа

1) Мне нужно выяснить, сколько раз один человек совершает покупки в одном и том же магазине в одном городе (Лондон) - я сделал это со случаем, когда (Лондон) - Мне нужно выяснить, какой процент пользователей посещают один и тот же магазин более одного раза

и 2) Показ второго уровня - какой процент пользователей совершает покупки в одном и том же магазине регулярно (не реже одного раза в месяц)

код, который я получил, находится ниже -

SELECT 
CASE WHEN COUNT(users) = 1 THEN "once"
WHEN COUNT(users)  > 1 THEN "multiple"
ELSE "NA"
END as userscountcheck,

COUNT(users) as singlemonthcount, users, city, businessname, CAST(concat(substr(CAST(date AS STRING), 1, 7), "-01") AS timestamp)  AS date_stamp

FROM fd_data.processing WHERE city LIKE'%London%' 
GROUP BY users, city, businessname, date_stamp
;

желаемый результат будет:

30% of users have shopped at "TESCO" more than once
70% of users have shopped at "TESCO" only once
5% of users (of the 30%) have shopped at "TESCO" more than once per month

Какой будет лучший способ показать проценты, сгруппированные по городам? я должен сделать вложенный подсчет и сгруппировать его по «несколько» и «один раз»? я изо всех сил пытаюсь вычислить это, и так как у меня здесь более 3 миллионов записей, я не могу извлечь это в excel и сделать это там ...

Я очень ценю вашу помощь заранее! спасибо

EDIT:

Пример данных:

sample data

желаемый результат выше

...