首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在dbplyr中“安排”聚合变量?

如何在dbplyr中“安排”聚合变量?
EN

Stack Overflow用户
提问于 2019-12-14 03:07:56
回答 1查看 50关注 0票数 1

以下dbplyr语句失败:

代码语言:javascript
运行
复制
foo <- activity_viewed %>% group_by(pk) %>% summarize(total = n()) %>%
  arrange(-total) %>% head(3) %>% collect()

出现以下错误:

代码语言:javascript
运行
复制
Error in postgresqlExecStatement(conn, statement, ...) : 
  RS-DBI driver: (could not Retrieve the result : ERROR:  column "total" does not exist
LINE 4: ORDER BY -"total"
                  ^
)

我可以在查询中看到问题: SQL不允许ORDER BY使用列别名。

下面是生成的查询:

代码语言:javascript
运行
复制
> print(show_query(foo))
<SQL>
SELECT "pk", COUNT(*) AS "total"
FROM "activity"
GROUP BY "pk"
ORDER BY -"total"
LIMIT 3

我需要ORDER BY -COUNT(*)

如何让dbplyr执行此查询?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-14 03:11:43

dbplyr可以转换desc,但不能转换-

代码语言:javascript
运行
复制
library(dplyr) 
library(dbplyr) 
mtcars2 <- src_memdb() %>% 
           copy_to(mtcars, name = "mtcars2-cc", overwrite = TRUE)
mtcars2 %>% arrange(desc(cyl)) %>% show_query()
<SQL>
SELECT *
FROM `mtcars2-cc`
ORDER BY `cyl` DESC
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59328474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档