MySQL的AVG函数是用来求出各种记录中的字段的平均值。
创新互联建站专业网站建设、网站设计,集网站策划、网站设计、网站制作于一体,网站seo、网站优化、网站营销、软文推广等专业人才根据搜索规律编程设计,让网站在运行后,在搜索中有好的表现,专业设计制作为您带来效益的网站!让网站建设为您创造效益。
MySQL中语句如下:
update Table1set avg_price=(select avg(price) from Table2
where Table2=.ID=Table1.TID)
扩展资料
在使用数据库进行数据筛选时查询时,经常会用到一些聚合函数,如 count(),sum(),max(),min(),avg()
聚合函数会把NULL排除在外,但Count(*)例外,并不会排除NULL;
AVG() 函数
AVG() 函数返回数值列的平均值。
SQL AVG() 语法
SELECT AVG(column_name) FROM table_name
sum为求平均值函数,将要求总和值的列sum(列名)
avg为求平均值函数,将要求平均值的列avg(列名)
nvl为如果未空则置空值为其他数据的函数,nvl(为空的列,将空值置成的其他值)
round为四舍五入函数,round(列名,保留小数位数)
可以加个时间维度表,以时间维度表为主表!(id,month)id 是和你的表左连接,month是1到12月,一楼说的几个方法!应该不好实现的吧?不用写存储过程那么复杂!举个例子
select a.rq,
b.xssr
from date_table a left jion table1 b
on a.id=b.id
1、MSSQL: ISNULL()
语法
ISNULL ( check_expression , replacement_value )
参数
check_expression
将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。
replacement_value
在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。
返回类型
返回与 check_expression 相同的类型。
注释
如果 check_expression 不为 NULL,那么返回该表达式的值;否则返回 replacement_value。
2、Oracle: NVL()
语法
NVL(eExpression1, eExpression2)
参数
eExpression1, eExpression2
如果 eExpression1 的计算结果为 null 值,则 NVL() 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1。eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 返回 NULL
oracle中:select nvl(字段名,0) from 表名;
sqlserver中:select isnull(字段名,0) from 表名;
mysql中:select ifnull(字段名,0) from 表名;
mysql举例:
select a.stu_id,a.course_id,(IFNULL(a.score,0)+IFNULL(b.score,0)) score
from a left join b
on a.stu_id = b.stu_id and a.course_id = b.course_id
————————————————
MySQL的确实有一个ISNULL ( )函数。然而,它的作品有点不同,微软的ISNULL ( )函数。 MySQL中我们可以使用IFNULL ( )函数,就像这样: SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products
DECLARE
t_name VARCHAR2(10);
t_course1 NUMBER;
t_course2 NUMBER;
t_course3 NUMBER;
TYPE c_type IS REF CURSOR;
cur c_type;
BEGIN
OPEN cur FOR
'SELECT t_name,
SUM(CASE t_course WHEN '''||'语文'||''' THEN t_score ELSE 0 END),
SUM(CASE t_course WHEN '''||'数学'||''' THEN t_score ELSE 0 END),
SUM(CASE t_course WHEN '''||'物理'||''' THEN t_score ELSE 0 END)
FROM tb GROUP BY t_name';
LOOP
FETCH cur INTO t_name,t_course1,t_course2,t_course3;
EXIT WHEN cur%NOTFOUND;
dbms_output.put_line(t_name||'语文'||t_course1||'数学'||t_course2||'物理'||t_course3);
END LOOP;
CLOSE cur;
nvl(字段名,0),就这个函数就好了,没有数据它就是null,会自动显示0
select nvl(字段名,0) from table