Arbeiten an einer ziemlich komplexen SQL-Anweisung, und nicht die meisten aufgetretene Anzahl von Prop_Listen während der Aggregation über Benutzer. Hier ist ein Beispiel meiner Daten-Set:SQL-Partition nach Zeit bei der Aggregation
user_id, term_id, time_stamp, prop_list
u100, t10, 7:00, (a,b,c)
u100, t10, 7:01, (a,b)
u100, t11, 7:01, (a,b)
u101, t10, 7:00, (a,b,c)
u101, t10, 7:01, (a)
u102, t10, 6:59, (a)
gewünschte Ausgabe:
term_id, term_id_distinct_count, prop_list
t10, 3, (a,b,c)
t11, 1, (a,b)
Hier ist meine aktuellen Code:
select
a.term_id,
count(distinct user_id) as term_id_distinct_count,
a.prop_list
from
(select
user_id, term_id,
prop_list,
row_number() over(partition by user_id, term_id order by time_stamp asc) as row_no
from
data_table
group) a
where
a.row_no = 1;
Beachten Sie, dass, wenn ein user_id mehrere term_id hatten wir nur wollen um den zu verwenden, der zuerst aufgetreten ist, deshalb sortiere ich nach Zeitstempel asc.
Sie term_id_distinct_count = 3 für Benutzer t10 ... aber aus Ihren Daten scheint es, gibt es nur 2 von sie ... ist es ein Tippfehler oder ich verstehe Ihre Frage nicht – objectNotFound
Bitte markieren Sie Ihre Frage mit der Datenbank, die Sie verwenden. –