❶ 在sql中有日数据,怎样求每月平均值
----------建立表--------
create table student (
时间 datetime not null,
姓名 char(4) not null,
成绩 int not null
)
---------插入数据,这里2个学生TOM,Jim,月份为1,2月-----
insert into student values('2008-1-1','Jim',89)
insert into student values('2008-1-2','Jim',50)
insert into student values('2008-1-3','Jim',70)
insert into student values('2008-1-4','Jim',99)
insert into student values('2008-1-5','Jim',68)
insert into student values('2008-2-1','Jim',55)
insert into student values('2008-2-2','Jim',60)
insert into student values('2008-2-3','Jim',70)
insert into student values('2008-2-4','Jim',80)
insert into student values('2008-2-5','Jim',88)
insert into student values('2008-1-1','Tom',70)
insert into student values('2008-1-2','Tom',50)
insert into student values('2008-1-3','Tom',70)
insert into student values('2008-1-4','Tom',99)
insert into student values('2008-1-5','Tom',68)
insert into student values('2008-2-1','Tom',55)
insert into student values('2008-2-2','Tom',60)
insert into student values('2008-2-3','Tom',70)
insert into student values('2008-2-4','Tom',80)
insert into student values('2008-2-5','Tom',88)
--时间每个月就取了5天,后面道理一样
select 姓名,datepart(month,时间) as 月, sum(成绩)/count(时间) as 平均成绩 from student group by datepart(month,时间),姓名
这里:datepart(month,时间) 是获取月份
sum(成绩)求得总成绩
count(distinct 时间)获取天数,这个地方你不是说日数据都有嘛,直接这样得到按月查询出的总天数.也就是一个月的天数,但是必须每天都有数据.
group by datepart(month,时间),姓名 按月,姓名,进行查询显示.
有什么不懂的你补充出来.
************
我这样写的:datepart(month,rq) as "月"对吗?
当然对啊,month就是月,day是天,year是年.你这的 "月" 不要引号吧.还有就是RQ,必须是字符串形式.
比如插入的时候,时间要加单引号. '2008-05-04'
❷ SQL语句求平均值,急求!!!
有平均值函数的avg(a1+a2+a3)
❸ 如何在SQL Server计算列和平均值
select
sum(列1)合计
,avg(列1)平均值
from
表名
列1必须是数字列
❹ 怎样编写SQL语句求平均成绩
1、打开数据库软件,附加数据库,右键选择新建查询。
❺ SQl中怎么求一行数据的平均数
update ex set 总分=语文+数学, 平均分=(语文+数学)/2
但你这个表结构设计得不太合理,因为学科被固定了,无法增删改,成绩表应该设计成
姓名 学科 分数
张三 语文 6
张三 数学 5
李四 语文 7
李四 数学 6
而且不需要把总分与平均分存到表里,这既是冗余信息,也不利分数修改。
要取总分与平均分时只要 select 姓名,sum(分数) 总分, avg(分数) 平均分 from ex group by 姓名
另外,系统想要扩展,还应该建立学科表、学生表
❻ SQL求总分及平均值
SQL求总分及平均值的方法。
如下参考:
1.打开数据库软件,添加数据库,右键点击并选择新查询。