У меня есть два набора данных, размещенных в Snowflake, с количеством подписчиков в социальных сетях по дням. Основная таблица, которую мы будем использовать для продвижения вперед (follower_counts), показывает количество подписчиков по дням:
![follower_counts](https://i.stack.imgur.com/iYNnW.png)
Эта таблица действительна по состоянию на 4/4/2020 и будет обновляться ежедневно. К сожалению, я не могу получить исторические данные в этом формате. Вместо этого у меня есть таблица с историческими данными (follower_gains), которая показывает net прирост подписчиков за день для нескольких учетных записей:
![follower_gains](https://i.stack.imgur.com/jgLEC.png)
В идеале - я хочу взять значение follower_count с минимальной даты в текущей таблице (follower_counts) и вычесть сумму выигрышей (органик c + оплаченный выигрыш) за каждый день до минимальной даты таблицы follower_gains, чтобы заполнить исторически таблицу follower_count , Кроме того, в этих таблицах есть несколько учетных записей с данными, поэтому их необходимо сгруппировать по учетным записям. Это должно выглядеть так:
![ideal_table](https://i.stack.imgur.com/j11aD.png)
Я только дошел до объединения этих двух таблиц, но даже не знаю, с чего начать с циклическим прохождением этих строк:
WITH a AS (
SELECT
account_id,
date,
organizational_entity,
organizational_entity_type,
vanity_name,
localized_name,
localized_website,
organization_type,
total_followers_count,
null AS paid_follower_gain,
null AS organic_follower_gain,
account_name,
last_update
FROM follower_counts
UNION ALL
SELECT
account_id,
date,
organizational_entity,
organizational_entity_type,
vanity_name,
localized_name,
localized_website,
organization_type,
null AS total_followers_count,
organic_follower_gain,
paid_follower_gain,
account_name,
last_update
FROM follower_gains)
SELECT
a.account_id,
a.date,
a.organizational_entity,
a.organizational_entity_type,
a.vanity_name,
a.localized_name,
a.localized_website,
a.organization_type,
a.total_followers_count,
a.organic_follower_gain,
a.paid_follower_gain,
a.account_name,
a.last_update
FROM a
ORDER BY date desc LIMIT 100