创建按多个类别分组的查询?

Create a query that groups by multiple categories?

我有这些:

colnames(w)
[1] "user_id"         "install_date"    "app_version"     "user_session_id"
[5] "event_timestamp" "app_page"             "time_seconds"   

我想获得每个会话的平均时间 app_page(总共 3 个),所以我这样做了。由于有 3 个应用程序版本,我想绘制所有这 3 个页面,每个版本使用的平均应用程序时间。

这就是我所做的:

df=sqldf('select app_version,app,round(avg(time_seconds),0) 
as time_app from w group by app_version')
df

这给出了这个:

  app_version app_page  time_app
1          v1 build     1019
2          v2 learn      910
3          v3 learn      966

但它看起来不正确。 如果我试试这个

df1=sqldf('select app_version,app,round(avg(time_seconds),0) as time_app from w group by app')
df1

app_version app_page time_app
1          v2 build     1001
2          v2  draw      727
3          v2 learn      982

我认为它是正确的,但它包含所有版本,而不是每个版本都是独立的。

正在尝试绘制它。

sw<-ggplot(data=df1, aes(x=app, y=time_app)) +
  geom_bar(stat="identity")  +facet_grid(app_version ~.)
sw

如何更改 sql 查询以使其提供正确的结果以及 因此该图将为每个版本提供每个应用程序页面的平均时间?

plot would provide each version with the avg time of every app page

这听起来像是两个维度的聚合:

select app, app_version, round(avg(time_seconds), 0) as time_app
from w
group by app, app_version
order by app, app_version;