永发信息网

select SQL 语言中常用的合计函数有哪些?在哪些情况下需要使用这些函数?

答案:6  悬赏:10  手机版
解决时间 2021-05-07 04:17

1select SQL 语言中常用的合计函数有哪些?在哪些情况下需要使用这些函数?

2 使用查询设计器查看查询 ximjsgz.qpr的select sql 语句 使用type命令查看查询 cjcross.qpr的select sql 语句 使用modify command 或 modif file命令修改查询zcjsgz.qpr

最佳答案

所有的合计函数如下表所示:






















MIN



返回一个给定列中最小的数值



MAX



返回一个给定列中最大的数值



SUM



返回一个给定列中所有数值的总和



AVG



返回一个给定列中所有数值的平均值



COUNT



返回一个给定列中所有数值的个数



COUNT(*)



返回一个表中的行数



假设我们将从employee表中搜索工资最高的列,可以使用以下的SQL语句:

SELECt max(salary), dept

FROM employee

GROUP BY dept;

这条语句将在每一个单独的部门中选择工资最高的工资。结果他们的salary和dept将被返回。



SELECt dept, avg(salary) 每个部门,的平均工资

FROM employee 来自此表

GROUP BY dept 每部门只显示一个,相同部门不显示。

HAVINg avg(salary) > 20000; 指定平均值大于多少的显示

全部回答
在 SQL 函数中计算字段

你可以把字符串表达式变量用于 SQL 合计函数以在字段中进行值的计算。例如,可以将一个字段的值乘一系数来计算百分比 (如附加税或销售税)。

下列表提供了对 Northwind.mdb 数据库的 Orders (订单)及 Order Details (订货明细)表中字段进行计算的示例。

计算 示例
往字段中加一个数 Freight +5
从字段中减一个数 Freight - 5
字段乘以一数 UnitPrice * 2
字段除以一数 Freight / 2
两字段相加 UnitsInStock + UnitsOnOrder
两字段相减 ReorderLevel - UnitsInStock

下列示例计算 Northwind.mdb 数据库中所有订单的平均折扣量。它将单价及折扣字段中的值相乘,算出每一份订单的折扣,然后计算平均值。你可以把这一表达式用于Visual Basic 编码的 SQL 语句。

SELECt Avg(UnitPrice * Discount) AS [Average Discount] FROM [Order Details];

Avg 函数

计算包含在特定查询字段中的一组数值的算术平均值。

语法

Avg(expr)

其中 expr 代表一个字符串表达式,它或者标识一个字段,该字段包含要计算平均值的数据;或者标识一个表达式,它用该字段中的数据来执行计算。 expr中的运算对象可能包括一个表字段名,一个常数或一个函数(可能是内在的,也可能是用户自定义的,但不是 SQL 合计函数)。

说明

使用 Avg 计算的平均值是算术平均值(将全部值的总和除以值的数目)。例如,可以使用 Avg 计算货运的平均费用。

Avg 函数在计算中不计任何 Null 字段。

你可以把 Min 和 Max 用于询问表达式和具备 SQL 特性的 QueryDef 对象中或在创建基于 SQL 查询的 Recordset 对象时。

Avg 函数示例

此示例使用订单表对那些运费超过 $100 的订单计算平均货运费。

此示例调用过程 EnumFields 过程,且可以在 SELECt 语句示例中找到该过程。

Sub AvgX()

Dim dbs As Database, rst As Recordset

' 在您的计算机中修改此行使其正确指到 Northwind 的路径。

Set dbs = OpenDatabase("Northwind.mdb")

' 对运费超过 $100 的订单,

' 计算运费超过$100的订单的平均货运费。

Set rst = dbs.OpenRecordset("SELECT Avg(Freight)" _

& " AS [Average Freight]" _

& " FROM Orders WHERe Freight > 100;")

' populateRecordset。

rst.MoveLast

' 调用 EnumFields 来打印记录集的内容。

'传递记录集对象和要求的字符宽度。

EnumFields rst, 25

dbs.Close

End Sub

Count 函数

计算从查询返回的记录数。

语法

Count(expr)

其中 expr 代表一个字符串表达式,它或者标识一个字段,该字段包含要计算的数据;或者是一个表达式,它使用此字段中的数据来执行计算。expr 中的运算对象可能包括一个表字段名,一个常数或一个函数(可能是内在的,也可能是用户自定义的,但不是 SQL合计函数).您可以计算任何种类的数据,包含文本数据。

说明

可以使用 Count 计算下一级查询的记录数。例如,可以使用 Count 计算运往指定国家的货物订单数量。

虽然 expr 能执行一个字段上的计算,但 Count 只是简单计算记录的数量。并不管记录中保存的是什么值。

Count 函数不数带有 Null 字段的记录,除非 expr是星号 (*) 通配符dadefWildcardCharacters.如果使用星号,Count 将计算所有记录的总量,包括有 Null 的字段的记录。Count(*) 比 Count ([Column Name]) 快得多。不要将星号放在引号 (' ') 中。下列示例计算 Orders 表之中的记录数:

SELECt Count(*)

AS TotalOrders FROM Orders;

如果 expr 标识多重字段,在至少有一个字段的值不为 Null 的情况下, Count 函数只计算一个记录。如果全部的指定字段为 Null,没有记录会被计算。使用 (&) 分隔字段名。下面是一个示例,它说明如何限制仅对 ShippedDate 或 Freight 字段不为 Null 的记录进行计算:

SELECt

Count('ShippedDate & Freight')

AS [Not Null] FROM Orders;

在查询表达式中可以使用 Count。你可以把这些表达式应用于具备 SQL特性的 QueryDef对象中或在创建基于SQL查询的Recordset时。

Count 函数示例

此示例使用订单表计算已送货至英国的订单笔数。

此示例调用过程 EnumFields 过程,且可以在 SELECt 语句示例中找到该过程。

Sub CountX()

Dim dbs As Database, rst As Recordset

' 在您的计算机中修改此行使其正确指到 Northwind 的路径。

Set dbs = OpenDatabase("Northwind.mdb")

' 对运费超过 $100 的订单,

' 计算已送货到英国的订单笔数。

Set rst = dbs.OpenRecordset("SELECT" _

& " Count (ShipCountry)" _

& " AS [UK Orders] FROM Orders" _

& "WHERe ShipCountry = 'UK';")

' populateRecordset。

rst.MoveLast

' 调用 EnumFields 来打印记录集的内容。

'传递记录集对象和要求的字符宽度。

EnumFields rst, 25

dbs.Close

End Sub

下一个示例简单地使用 Min 和 Max 函数来查找员工最早和最晚的生日日期,以比较 First 和 Last 函数的结果。

Sub FirstLastX2()

Dim dbs As Database, rst As Recordset

' 在您的计算机中修改此行使其正确指到 Northwind 的路径。

Set dbs = OpenDatabase("Northwind.mdb")

' 对运费超过 $100 的订单,

' 查找员工最早和最晚的生日日期。

Set rst = dbs.OpenRecordset("SELECt " _

& "First(BirthDate) as FirstBD, " _

& "Last(BirthDate) as LastBD FROM Employees;")

' populateRecordset。

rst.MoveLast

' 调用 EnumFields 来打印记录集的内容。

'传递记录集对象和要求的字符宽度。

EnumFields rst, 12

Debug.Print

' 查找员工最早和最晚的生日日期。

Set rst = dbs.OpenRecordset("SELECt " _ & "Min(BirthDate) as MinBD," _

& "Max(BirthDate) as MaxBD FROM Employees;")

' populateRecordset。

rst.MoveLast

' 调用 EnumFields 来打印记录集的内容。

'传递记录集对象和要求的字符宽度。

EnumFields rst, 12

dbs.Close

End Sub

Min 和 Max 函数

在查询时从一组指定字段的值中返回最小或最大值。

语法

Min(expr)

Max(expr)

其中 expr 代表一个字符串表达式,它或者标识一个字段,该字段包含要计算的数据;或者是一个表达式,它使用此字段中的数据来执行计算。 expr中的运算对象可能包括一个表字段名,一个常数或一个 函数 (可能是内在的,也可能是用户自定义的,但不是 SQL 合计函数)。

说明

可以使用 Min 及 Max 来计算字段中的最小及最大值,该字段是基于指定的合计或分组的。例如,可以使用这些函数返回最低和最高的货运成本。如果没有指定合计,则使用整个表。

你可以把 Avg 用于查询表达式和具备 SQL特性的 QueryDef对象中或当创建基于SQL查询的 Recordset对象时。

Min、Max 函数示例

此示例使用订单表对送货至英国的订单返回最低的和最高的货运运费。

此示例调用过程 EnumFields 过程,且可以在 SELECt 语句示例中找到该过程。

Sub MinMaxX()

Dim dbs As Database, rst As Recordset

' 在您的计算机中修改此行使其正确指到 Northwind 的路径。

Set dbs = OpenDatabase("Northwind.mdb")

' 对运费超过 $100 的订单,

' 对送货到英国的订单返回最低的和最高的

' 货运运费。

Set rst = dbs.OpenRecordset("SELECT " _

& "Min(Freight) AS [Low Freight], " _

& "Max(Freight)AS [High Freight] " _

& "FROM Orders WHERe ShipCountry = '英国';")

' populateRecordset。

rst.MoveLast

' 调用 EnumFields 来打印记录集的内容。

'传递记录集对象和要求的字符宽度。

EnumFields rst, 12

dbs.Close

End Sub

Sum 函数

返回包含在指定查询字段中一组值的总计。

语法

Sum(expr)

其中 expr 代表一个字符串表达式,它或者标识一个字段,该字段包含要计算的数据;或者是一个表达式,它使用此字段中的数据来执行计算。 expr中的运算对象可能包括一个表字段名,一个常数或一个函数(可能是内在的,也可能是用户自定义的,但不是 SQL 合计函数)。

说明

Sum 函数求字段中值的总和。例如,可用 Sum 函数计算货运的总费用。

Sum 函数会忽略包含 Null 字段的记录。下列示例显示如何计算产品的 UnitPrice (单价)及 Quantity (数量)字段的合计:

SELECt

Sum(UnitPrice * Quantity)

AS [Total Revenue] FROM [Order Details];

可以在一个查询表达式之中使用 Sum 函数。你也可以在具备 SQL 特性的 QueryDef 对象中或在创建基于SQL查询的 Recordset 对象时使用这一表达式。

Sum 函数示例

此示例使用订单表计算对于送货至英国订单的合计销售额。

此示例调用过程 EnumFields 过程,且可以在 SELECt 语句示例中找到该过程。

Sub SumX()

Dim dbs As Database, rst As Recordset

' 在您的计算机中修改此行使其正确指到 Northwind 的路径。

Set dbs = OpenDatabase("Northwind.mdb")

' 对运费超过 $100 的订单,

'对于送货到英国的订单计算总销售额。

Set rst = dbs.OpenRecordset("SELECT" _

& " Sum(UnitPrice*Quantity)" _

& " AS [Total UK Sales] FROM Orders" _

& " INNER JOIN [Order Details] ON" _

& " Orders.OrderID = [Order Details].OrderID" _

& " WHERe (ShipCountry = '英国');")

' populateRecordset。

rst.MoveLast

' 调用 EnumFields 来打印记录集的内容。

'传递记录集对象和要求的字符宽度。

EnumFields rst, 15

dbs.Close

End Sub

max() min() avg count()

avg()

count()

sum()

min()

max()

avg():求平均 例如求学生的平均分

sum():求总和 求总分

count():统计个数 统计学生人数

下面那个问题我也不会

.qpr 是什文件哦 呵呵 !

avg ,sum ,count
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
诺基亚E66正品都有哪几个颜色啊,粉色那款不
dnf谁给几个鬼泣改技能的补丁
立把寨地址在哪,我要去那里办事
怎么样传空间照片会有左下角空间地址?
联想Y450的WIFI在XP下能用么?
艾美特电磁炉-显示EO不能家热
qqDNF怎么才能够买装备啊?
发烧症状?大家看看什么情况
帮看看这个配置能换什么样的CPU
厦门哪里买手机不会买到翻新机???
顺平供电公司培训中心地址在哪,我要去那里办
哪个明星年龄最小
天际是什么动物,华为天际通是什么原理
1993年腊月二十一出生的人现在多少岁?
男生是否都很在乎女友的第一次??
推荐资讯
该对自己的男朋友好吗?
我爱的人`爱我的人在哪?
一个人似乎太寂寞、但我该怎么做??
全职猎人有无完结迹象?
2010年6月内蒙古旅游
高考不予以录取的六大疾病
千羽床上用品在什么地方啊,我要过去处理事情
三国无双3中自创武将的10J武器怎么打?
QQ工具栏看不见 安装了
魔域boss板的 要怎么激活 简单么
完美新出的神魔大陆怎么样
6650 N76在河南洛阳有买水货的没?多少钱?谢谢
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?