Первоначально я пытался создать два разных запроса и затем объединить их в R, чтобы получить кумулятивный график времени, но я пытаюсь просто получить нужную информацию в одном запросе.
Исходный код:
users <- dbGetQuery(pool, "select id, name
from schema.table
where (name like '%t%' and name like '%2018%') or
(name like '%t%' and name like '%2017%')")
opts <- dbGetQuery(pool, "select id, name, ts
from schema.table
where name = 'qr_optin'")
all <- merge(users, opts, by = "id")
all <- all %>%
mutate(date = as.Date(all$ts),
name.x = gsub("t", "", name.x)) %>%
group_by(name.x, date) %>%
summarise(n = n())
Который выводит что-то вроде этого:
name date n
x 2018-09-09 12
x 2018-09-08 5
y 2018-09-08 4
xy 2018-09-06 8
xy 2018-09-04 9
Я пытаюсь получить информацию, по крайней мере, с двумя объединенными запросами, но я только сделал это так далеко, и это безумномедленный.
select f1.id, f1.name, f2.ts
from schema.table f1
left join schema.table f2 on f2.id = f1.id
where f2.name = ' qr_optin' and
(f1.name like '%t%' and f1.name like '%2018%') or
(f1.name like '%t%' and f1.name like '%2017%')