繁体   English   中英

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

[英]calculate total of rows all in the same column in sql database

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

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

谢谢!

假设您使用查询语法而不是lambda,那么您将:

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

实际上与以下内容相同:

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

这里dataContext是Linq2Sql DataContext类的实例。

您今天就可以学习lambda。 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

欲获得更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM