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

时间:2018-02-08 12:04:36

标签: sql r sqlite sqldf

我有这些:

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

enter image description here

如何更改sql查询,以便提供正确的结果和 因此,情节会为每个版本提供每个应用页面的平均时间吗?

1 个答案:

答案 0 :(得分:0)

  

plot将为每个版本提供每个应用页面的平均时间

这听起来像是两个方面的聚合:

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