我有以下mysql查询,其中我在两个不同的字段上进行了总和,称为“count”和“population”,然后将sum(count)/ sum(population)除以然后将其乘以100000,最后按年分组
Select year, cname, (sum(count)/sum(population))*100000 as total from cancer c where c.cname ="lung and bronchus" group by year;
我在mongodb中写过以下查询,但我不知道如何投射cname和year。
db.cancer_stats.aggregate([
{$match:{cname: "lung and bronchus"}},
{$group:{_id:"year"},
{total:{$multiply:[$divide:[$sum:"$count", $sum:"population"], 100000]}}
}])
任何人都可以指导我解决此问题吗?
答案 0 :(得分:6)
我不确定“解决查询”是什么意思,但该查询在当前形式下无效。我想你想要一个如下的管道:
db.cancer_stats.aggregate([
{ "$match" : { "cname" : "lung and bronchus" } },
{ "$group" : { "_id" : "year", "t_count" : { "$sum" : "$count" }, "t_population" : { "$sum" : "$population" } } },
{ "$project" : { "result" : { "$multiply" : [100000, { "$divide" : ["$t_count", "$t_population"] } ] } } }
])
这会回答你的问题吗?