计算 SQL 数据库中同一列中的所有行的总和

本文关键字:一列 数据库 SQL 计算 | 更新日期: 2023-09-27 18:31:23

我有一个名为 expense 的 sql 表,其中有一个叫做 cost 的 int 列。在我的应用程序中,此数据显示在网格上,每次我使用 linq2sql 插入新行时,该网格都会刷新。我想做的是在我的应用程序中有一个整数变量,它是每次插入一行时成本列中所有字段的总和。

有没有一种简单的方法可以在每次插入时用 linq2sql 对这些字段求和。请尽量避免使用lambda,因为我还没有学会。

谢谢!

计算 SQL 数据库中同一列中的所有行的总和

假设您使用查询语法而不是 lambda,这里是:

var totalCost = (from expensesRow in dataContext.Expenses
             select expensesRow.cost)
             .Sum();

这实际上与:

var totalCost = dataContext.Expenses
                  .Sum(x => x.cost);

这里dataContext是 Linq2Sql DataContext 类的一个实例。

你今天就可以学习lambdas了。 http://www.theabsentmindedcoder.com/2010/06/linq-sum.html 拥有您想要的,并使用非常简单的 lambda 来实现那里。你可以通过让你的选择只收集你试图求和的一列整数来摆脱没有lambda,但是为什么要做额外的工作来不学习东西呢?

假设我有一个名为 users 的表,其结构如下:

[Table users] -  id | username | points_awarded

然后,我可以通过运行查询找到我授予每个用户的总积分:

SELECT SUM(points_awarded) as total_points FROM users

您还可以计算有多少用户的积分大于我们的等于 N。例如,说 N = 500,那么我可以运行:

SELECT COUNT(id) as num_users_with_points FROM users WHERE points_award >= 500

退房:

http://dev.mysql.com/doc/refman/5.1/en/counting-rows.html
http://dev.mysql.com/doc/refman/5.0/en/func-op-summary-ref.html

了解更多信息。