这是我数据库里的字段
student_chinese 数字
student_math 数字
student_politics 数字
student_english 数字
total_score 数字
average 数字
我想在total_score里求前四个录入数的总合,
想在average里求平均值
请问怎么设计?
在存储数据的同时计算下就能解决了
返回组中值的平均值。空值将被忽略。
AVG ( [ ALL | DISTINCT ] expression )
ALL
对所有的值进行聚合函数运算。ALL 是默认设置。
DISTINCT
指定 AVG 操作只使用每个值的唯一实例,而不管该值出现了多少次。
expression
精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。不允许使用聚合函数和子查询。
返回类型由表达式的运算结果类型决定。
表达式结果 | 返回类型 |
---|---|
整数分类 | int |
decimal 分类 (p, s) | decimal(38, s) 除以 decimal(10, 0) |
money 和 smallmoney 分类 | money |
float 和 real 分类 | float |
重要 当使用 CUBE 或 ROLLUP 时,不支持非重复聚合,例如 AVG(DISTINCT column_name)、COUNT(DISTINCT column_name)、MAX(DISTINCT column_name)、MIN(DISTINCT column_name) 和 SUM(DISTINCT column_name)。如果使用了 CUBE 或 ROLLUP,Microsoft® SQL Server™ 将返回错误信息并取消查询。
下例计算所有商业类书籍的平均预付款和本年度迄今为止的销售额。对检索到的所有行,每个聚合函数都生成一个单独的汇总值。
USE pubs
SELECT AVG(advance), SUM(ytd_sales)
FROM titles
WHERE type = 'business'
下面是结果集:
-------------------------- -----------
6,281.25 30788
(1 row(s) affected)
当与 GROUP BY 子句一起使用时,每个聚合函数都为每一组生成一个值,而不是对整个表生成一个值。下例对每一类书生成汇总值,这些值包括每一类书的平均预付款以及每一类书本年度迄今为止的销售总额。
USE pubs
SELECT type, AVG(advance), SUM(ytd_sales)
FROM titles
GROUP BY type
ORDER BY type
下面是结果集:
type
------------ -------------------------- -----------
business 6,281.25 30788
mod_cook 7,500.00 24278
popular_comp 7,500.00 12875
psychology 4,255.00 9939
trad_cook 6,333.33 19566
UNDECIDED NULL NULL
(6 row(s) affected)
下列语句返回商业类书籍的平均价格。
USE pubs
SELECT AVG(DISTINCT price)
FROM titles
WHERE type = 'business'
下面是结果集:
--------------------------
11.64
(1 row(s) affected)
如果不使用 DISTINCT,AVG 函数将计算出 titles 表中所有商业类书籍的平均价格。
USE pubs
SELECT AVG(price)
FROM titles
WHERE type = 'business'
下面是结果集:
--------------------------
13.73
(1 row(s) affected)
[此贴子已经被作者于2007-6-20 20:36:14编辑过]