Sto cercando di ottenere un conteggio cumulativo di oggetti distinti in Redshift su una serie storica. La cosa semplice sarebbe usare COUNT (DISTINCT myfield) OVER (ORDER BY timefield DESC ROWS UNBOUNDED PRECEDING), ma Redshift dà un errore "Window definition non supportato".Provare a contare le entità distinte cumulative utilizzando Redshift SQL
Ad esempio, il codice riportato di seguito cerca di trovare gli utenti distinti cumulativi per ogni settimana dalla prima settimana ad oggi. Tuttavia, ottengo l'errore "Funzione finestra non supportata".
SELECT user_time.weeks_ago,
COUNT(distinct user_time.user_id) OVER
(ORDER BY weeks_ago desc ROWS UNBOUNDED PRECEDING) as count
FROM (SELECT FLOOR(EXTRACT(DAY FROM sysdate - ev.time)/7) AS weeks_ago,
ev.user_id as user_id
FROM events as ev
WHERE ev.action='some_user_action') as user_time
L'obiettivo è creare una serie storica cumulativa di utenti unici che hanno eseguito un'azione. Qualche idea su come fare questo?
ho visto lo stesso esempio collegata che non funziona. Ma questo ha aiutato. Grazie. – systemjack
cosa fai quando non vuoi restituire ogni riga con un 'select *'? Ho un caso in cui voglio contare clienti distinti per un intervallo di un mese, ma quando ordino per 'customer_id' nella partizione il set di restituzione fornisce ogni valore di rango, anche se voglio solo il massimo per il mese. – Merlin