Как сгруппировать данные по определенной колонке и вывести их в необходимом порядке?
У меня есть таблица: Вот пример данных:
carrier id email date
indosat ooredoo 0001cec9-87cf-4fb4-a42c-3e194dc0b02c 38c18b74f7c5435ddeeabbcb57532a28 2020-02-08
indosat ooredoo 00590797-3165-435f-b55d-77af1b16fc21 51389e6392e540b3c7c73f3e1bb63d44 2020-02-19
3 006e0dfa-5607-4417-9688-a5c41d7645a9 f031692d3c1ff7d1ee82cf18643fdd4e 2020-03-04
telkomsel 00723bb0-3846-4162-af48-24d282abdf95 1d01620025f482958b07549a182a0b56 2020-02-23
telkomsel 007247db-a51a-409a-bf4c-e030e9b70b1f f7412b4854512780db1fba9a2960c91f 2020-02-08
telkomsel 0091a7c4-392a-4af5-aabe-80e8a1172d3c cef5e37d5b09a4dca41552eab6a5ee59 2020-02-24
В этой таблице:
caried- название мобильного оператораid- id мобильного устройстваemail- е-мейл на мобильном устройствевремя, когда было обнаружено действие
Я хочу сгруппировать данные по email, вывести количество раз когда пользователь менял и id и carrier и вывести только пользователей, в которых это было больше, чем 2 раза. Кроме того, все данные внутри одного email должны быть упорядочены по date
Вот пример исходящей таблицы:
email num id carrier date
38c18b74f7c5435ddeeabbcb57532a28 2 0001cec9-87cf-4fb4-a42c-3e194dc0b02c telkomsel 2020-02-07
0091a7c4-392a-4af5-aabe-80e8a1172d3c 3 2020-03-04
51389e6392e540b3c7c73f3e1bb63d44 3 1653dc67d73cb2f8316203f9240dec67 3 2020-03-07
0178e5f3acbdf750b26324d4eaef0153 toro 2020-02-17
ae8ecd6ae309fc51278ed378f86a36b5 indosat 2020-02-22
Этот запрос я буду выполнять в BigQuery
Как можно решить задачу?
Спасибо
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
готовите запрос с данными
SELECT email, count(distinct id), count(distinct carrier) from table group by email having count(distinct id) > 2 or count(distinct carrier) > 2
далее подключаете к основной таблице по email и сортируете и выводите как хотите