面试题答案
一键面试在MongoDB中,你可以使用以下聚合管道来解决这个问题:
db.sales.aggregate([
{
$group: {
_id: "$product",
totalQuantity: { $sum: "$quantity" }
}
},
{
$sort: {
totalQuantity: -1
}
}
]);
$group
阶段:_id: "$product"
:按product
字段对文档进行分组。totalQuantity: { $sum: "$quantity" }
:计算每个产品的销售总量。
$sort
阶段:totalQuantity: -1
:按totalQuantity
字段降序排列。
在其他数据库(如SQL)中,假设表名为sales
,有product
、quantity
和date
字段,查询如下:
SELECT product, SUM(quantity) AS totalQuantity
FROM sales
GROUP BY product
ORDER BY totalQuantity DESC;
SELECT
语句:product
:选择产品名称。SUM(quantity) AS totalQuantity
:计算每个产品的销售总量并命名为totalQuantity
。
GROUP BY
子句:按product
字段分组。ORDER BY
子句:按totalQuantity
字段降序排列。