mysql输出每个人计算机分数,另一种计算每个学生在MySQL中平均分数的方法?

请尝试以下...

SELECT Student_table.studentID,

Student_table.fullname,

COALESCE(CAST(AVG(grade) AS DECIMAL(11, 2)), 'N/A') AS average_grade

FROM Student_table

LEFT JOIN Grade_table ON Student_table.studentID = Grade_table.student_ID

GROUP BY Student_table.studentID;

这种说法开始通过对的student_ID他们的共同价值观上Student_table一个LEFT JOIN和Grade_table。此练习不需要Courses_table。

然后,它将每个学生得到的数据集分组,并使用AVG()函数计算每个学生的平均数。如果学生没有Grade_table条目,则AVG()将返回NULL值。如果AVG()返回非NULL值,则返回COALESCE();如果返回NULL值,则返回N/A。

如果您有任何问题或意见,请随时发布相应评论。

附录

我测试了我的发言反对使用下面的脚本创建数据...

CREATE TABLE Grade_table

(

student_ID LONG,

courses_names VARCHAR(5),

how_many_times INT,

grade DOUBLE

);

INSERT INTO Grade_table (student_ID,

courses_names,

how_many_times,

grade)

VALUES (91110010003, 'MCB', 1, 7),

(91110010003, 'THDC', 1, 8),

(91110010003, 'THVP', 1, 9.5),

(91110010004, 'MCB', 1, 4.5),

(91110010004, 'THDC', 1, 5.5),

(91110010004, 'THVP', 1, 10);

CREATE TABLE Student_table

(

studentID LONG,

fullname VARCHAR(50),

gender CHAR(1),

DOB DATE,

classID CHAR(8)

);

INSERT INTO Student_table (studentID,

fullname,

gender,

DOB,

classID)

VALUES (91110010003, 'A', 'M', '1993-03-03', '25CCHT02'),

(91110010004, 'B', 'M', '1993-03-08', '25CCHT02'),

(91110010005, 'C', 'M', '1991-04-14', '25CCHT02'),

(93510010005, 'D', 'M', '1993-07-27', '25CCDH02'),

(93510010008, 'E', 'F', '1993-10-03', '25CCDH02'),

(93510010009, 'F', 'M', '1990-09-06', '25CCDH02'),

(93510010010, 'G', 'M', '1989-12-18', '25CCDH02'),

(99510170307, 'H', 'M', '1991-06-05', '25CCDH02'),

(99510180112, 'L', 'M', '1992-12-07', '25CCDH02'),

(99510180150, 'M', 'M', '1993-03-22', '25CCDH02');

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值