在我非常简单的应用程序中,每次添加/更改/删除新事务时,我都会保持一个正在运行的聚合。我意识到,我可以简单地循环每次交易,但这似乎很昂贵。因此,我打开事件类型并应用不同的逻辑,这取决于它是创建/更新/删除。
exports.aggregateTransactions = functions.firestore
.document('budgets/{budgetId}/transactions/{transactionId}')
.onWrite(async (change, context) => {
adjustment = 0;
if(change.after.data == undefined){
adjustment = -1 * change.before.data().amount;
}
if(change.before.data && change.after.data){
adjustment = change.after.data().amount - change.before.data().amount;
}
if(!change.before.data && change.after.data){
adjustment = change.after.data().amount;
}
const budgetRef = db.collection('budgets').doc(context.params.budgetId);
await db.runTransaction(async (transaction) => {
const budgetDoc = await transaction.get(budgetRef);
const newBalance = budgetDoc.data().balance + adjustment;
transaction.update(budgetRef, {
balance: newBalance
});
});
});
这让人感觉每次都需要大量的代码来计算出正在发生的事件。有没有更好的办法处理这件事?
大部分代码在我看来都很好。我只使用fieldvalue.increment()
操作来更新预算,而不是事务:
const budgetRef = db.collection('budgets').doc(context.params.budgetId);
budgetRef.update({ balance: admin.firestore.FieldValue.increment(adjustment) });
有关此操作的更多信息,请参阅递增数值的文档。
主要内容:1.COUNT函数,2. SUM函数,3. AVG函数,4. MAX函数,5. MIN函数SQL聚合函数用于对表的单个列的多行执行计算,它只返回一个值。它还用于汇总数据。 SQL聚合函数的类型,如下图所示 - 接下来,我们一个个地讲解。 1.COUNT函数 函数用于计算数据库表中的行数,它可以在数字和非数字数据类型上工作。 函数使用返回指定表中所有行的计数。 包函重复值和值。 语法 假设有一个表,它的结构和数据如下所示 - PRODUCT COMPANY QTY RATE COST I
问题内容: 在解释CTE的一些概念时,有人问了一个可爱的问题..我们可以找到行的乘法吗,而我们总是从新手开始集中精力。那给了我一个想法!仅使用SQL是否有可能。我还考虑了我们甚至可以支持的最大精度,因为该产品可能非常庞大。 话虽如此,我们不能编写自己的聚合函数。(可以吗?)我在想仅使用SQL就有可能。 我想到的就像是自己添加2,3次。.但是当集合很大时..由于繁琐,我无法实现。 另一个可能是和,为
主要内容:应用聚合函数在《 Python Pandas窗口函数》一节,我们重点介绍了窗口函数。我们知道,窗口函数可以与聚合函数一起使用,聚合函数指的是对一组数据求总和、最大值、最小值以及平均值的操作,本节重点讲解聚合函数的应用。 应用聚合函数 首先让我们创建一个 DataFrame 对象,然后对聚合函数进行应用。 输出结果: 1) 对整体聚合 您可以把一个聚合函数传递给 DataFrame,示例如下: 输出结果: 2)
在本教程中,将了解和学习SQL Server聚合函数以及如何使用它们来计算聚合。 聚合函数执行一个或多个值的计算并返回单个值。 聚合函数通常与SELECT语句的GROUP BY子句和HAVING子句一起使用。 下表显示了SQL Server中的聚合函数: 编号 聚合函数 描述 1 AVG()函数 函数用于计算集合中非值的平均值。 2 CHECKSUM_AGG()函数 函数根据一组行计算校验和值。
1. 前言 慕课解释:SQL 内置的聚合函数主要用于数据的统计和分析。 本小节,我们将一起学习 SQL 中的聚合函数。 数据统计和分析是挖掘数据规律、发现数据特征的主要手段,SQL 虽然无法直接分析数据,但是提供基本聚合函数来帮助开发者做数据挖掘。 本小节测试数据如下,请先在数据库中执行: DROP TABLE IF EXISTS imooc_user; CREATE TABLE imooc_us
聚合功能让你可以汇总或更改数据的粒度。 点击字段框中的向下箭头。 选择“聚合”,然后选择一个聚合函数。 函数 描述 数字 总计 返回所有值的总和。Null 值将被忽略。 平均 返回所有值的平均值。Null 值将被忽略。 计数 返回项目数量。Null 值不计算在内。 计数(非重复) 返回不同项目的数量。Null 值不计算在内。 最小 返回所有记录的最小值。Null 值将被忽略。 最大 返回所有记录的
聚合功能让你可以汇总或更改数据的粒度。 点击字段框中的向下箭头。 选择“聚合”,然后选择一个聚合函数。 函数 描述 数字 总计 返回所有值的总和。Null 值将被忽略。 平均 返回所有值的平均值。Null 值将被忽略。 计数 返回项目数量。Null 值不计算在内。 计数(非重复) 返回不同项目的数量。Null 值不计算在内。 最小 返回所有记录的最小值。Null 值将被忽略。 最大 返回所有记录的
聚合功能让你可以汇总或更改数据的粒度。 点击字段框中的向下箭头。 选择“聚合”,然后选择一个聚合函数。 函数 描述 数字 总计 返回所有值的总和。Null 值将被忽略。 平均 返回所有值的平均值。Null 值将被忽略。 计数 返回项目数量。Null 值不计算在内。 计数(非重复) 返回不同项目的数量。Null 值不计算在内。 最小 返回所有记录的最小值。Null 值将被忽略。 最大 返回所有记录的