具有多个值的多个答案的比较

时间:2013-05-30 17:35:18

标签: mysql ruby-on-rails

假设我们有一个模型Answer,其中包含以下数据:

pic_id   | gender | is_nude | has_advertisement
2530     | female | 0       | 1
2530     | male   | 1       | 0
2530     | male   | 1       | 0
2530     | male   | 0       | 1
2530     | male   | 1       | 0

如果费用较少,我怎样才能在所有字段genderis_nudehas_advertisement)或nil上获得3个同意答案?

1 个答案:

答案 0 :(得分:1)

这是一个聚合查询。以下内容为您提供所有“小组”的答案及其计数:

select gender, is_nude, has_advertisement, count(*) as NumAnswers
from Answers
group by gender, is_nude, has_advertisement

如果您只想要完全 3匹配的那些,那么添加条款:

having NumAnswers = 3

如果你想要一个最大的集合,那么添加:

order by NumAnswers desc
limit 1