gpt4 book ai didi

sql - 在 MongoDb 查询中执行计算

转载 作者:行者123 更新时间:2023-12-05 05:34:13 27 4
gpt4 key购买 nike

假设我有包含的集合

<表类="s-表"><头>事件类型产品<正文>查看热水器查看热水器购买热水器查看电视查看电视查看电视购买电视

第一列有两种类型的字段,(浏览量和购买量)第二列包含不同种类的产品。以上数据已经作为集合导入到MongoDB数据库中。我想通过计算产品的最高转化率(100 个客户查看 1 个客户购买 = 1%)来执行数据分析。通过使用聚合,它需要进行查看和购买的匹配。然后根据商品计算购买数量,查看分组。最后,将购买次数除以观看次数。作为MongoDB的初学者,我发现它很难,想问一下有没有什么办法可以做到?

最佳答案

您可以使用非常标准的管道来实现这一点,我们的策略是将同一产品的 $group 文档,同时使用 $cond 运算符来汇总 View 和购买。最后我们只需要根据需要投影出相关的比例即可。

像这样:

db.collection.aggregate([
{
$group: {
_id: "$product",
purchases: {
$sum: {
$cond: [
{
$eq: [
"$event_type",
"purchase"
]
},
1,
0
]
}
},
views: {
$sum: {
$cond: [
{
$eq: [
"$event_type",
"view"
]
},
1,
0
]
}
}
}
},
{
$project: {
_id: 0,
product: "$_id",
ratio: {
$divide: [
"$purchases",
"$views" // can we have a purchase without a view? can views be 0? if so need to handle this edge case.
]
}
}
},
{
$sort: {
ratio: -1
}
}
])

Mongo Playground

关于sql - 在 MongoDb 查询中执行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73670319/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com