【发布时间】:2016-06-25 22:30:59
【问题描述】:
我在使用 SQL 查询时遇到了一些问题。从表中我们称其为报告:
我想按名称列对所有报告进行分组。
然后,对于这些名称组中的每一个,我想转到评级列并计算评级为 15 或更少的次数。假设其中一个名为 BOBBO 的组发生了 10 次。
我还想知道提交评分的次数(与每个名称组的记录总数相同)。因此,使用名称组 BOBBO 假设他有 20 个评分。
因此,在条件下,BOBBO 组 50% 的时间评分为 15 或更低。
我已经看过这些帖子——我仍然无法破解这个问题。
using-count-and-return-percentage-against-sum-of-records
getting-two-counts-and-then-dividing-them
getting-a-percentage-from-mysql-with-a-group-by-condition-and-precision
divide-two-counts-from-one-select
读完之后我尝试了这样的查询:
ActiveRecord::Base.connection.execute
("SELECT COUNT(*) Matched,
(select COUNT(rating) from reports group by name) Total,
CAST(COUNT(*) AS FLOAT)/CAST((SELECT COUNT(*) FROM reports group by name) AS FLOAT)*100 Percentage from reports
where rating <= 15 order by Percentage")
ActiveRecord::Base.connection.execute
("select name, sum(rating) / count(rating) as bad_rating
from reports group by name having bad_rating <= 15")
任何帮助将不胜感激!
【问题讨论】:
-
请指定表结构和您期望的输出