У меня есть таблица в улье, которая выглядит примерно так
cust_id prod_id timestamp
1 11 2011-01-01 03:30:23
2 22 2011-01-01 03:34:53
1 22 2011-01-01 04:21:03
2 33 2011-01-01 04:44:09
3 33 2011-01-01 04:54:49
так далее и так далее.
Для каждой записи я хочу проверить, сколько уникальных продуктов этот клиент купил за последние 24 часа, исключая текущую транзакцию. Таким образом, вывод должен выглядеть примерно так:
1 0
2 0
1 1
2 1
3 0
Мой запрос улья выглядит примерно так
select * from(
select t1.cust_id, count(distinct t1.prod_id) as freq from temp_table t1
left outer join temp_table t2 on (t1.cust_id=t2.cust_id)
where t1.timestamp>=t2.timestamp
and unix_timestamp(t1.timestamp)-unix_timestamp(t2.timestamp) < 24*60*60
group by t1.cust_id
union all
select t.cust_id, 0 as freq from temp_table t2
)unioned;