Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查询中的数学加运算符。求和。选择指定的计数变量_Sql_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Sql 查询中的数学加运算符。求和。选择指定的计数变量

Sql 查询中的数学加运算符。求和。选择指定的计数变量,sql,ruby-on-rails,ruby,ruby-on-rails-3,Sql,Ruby On Rails,Ruby,Ruby On Rails 3,我一直在尝试添加另一个连接表,如rails指南中所示(例如publication_comments)。然后我调用指定列上的select进行计数,可能到目前为止它还在工作 这个想法是加上评论计数和发布计数=总和。然而,我面临一个问题,如何在查询中添加评论计数和发布计数以及顺序:“SUM DESC” 有可能像我想的那样做吗?怎么做 到目前为止,我有以下代码: @publication = Publication.joins(:reviews, :publication_comments)

我一直在尝试添加另一个连接表,如rails指南中所示(例如publication_comments)。然后我调用指定列上的select进行计数,可能到目前为止它还在工作

这个想法是加上评论计数和发布计数=总和。然而,我面临一个问题,如何在查询中添加评论计数和发布计数以及顺序:“SUM DESC”

有可能像我想的那样做吗?怎么做

到目前为止,我有以下代码:

 @publication = Publication.joins(:reviews, :publication_comments)
                                  .select('"publications".*, count("reviews".id) as reviews_count, count("publication_comments".id) as pub_count')
                                  .group('"publications".id')
                                  .order("reviews_count DESC")

你用什么数据库?这将取决于sql命令。我使用SQLite3。欢迎任何解决方案。您将在生产中使用sqlite吗?您知道SQLite和例如Postgres之间的sql函数可能不同吗?如果我尝试从“some_table”中选择col1+col2在postgres中工作得很好,所以我想在sqlite中也是可能的。问题是你们是否能把它放在有序条款中。如果没有,您可以始终按
评论数、发布数下单,因为这实际上应该与按总和下单相同。根据@MichaelSzyndel所说的,尝试将
计数(“评论”.id)替换为评论数、计数(“发布评论.id”)替换为发布计数
计数(“评论.id)+计数(“发布评论.id”)作为我的计数
和do
.order(“我的计数描述”)
@publication = Publication.joins(:reviews, :publication_comments)
    .select('"publications".*, count("reviews".id) + count("publication_comments".id) as my_count')
    .group('"publications".id')
    .order("my_count DESC")