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