SQL-学生ID列表和小数点后2位的平均分数
问题:如果学生的平均分数大于80,请编写一个查询,以显示学生ID和平均分数列表,小数点后两位。为average mark指定一个别名作为avg_mark。根据平均分数对结果进行排序 我编写了这个查询,但结果与预期的输出不匹配SQL-学生ID列表和小数点后2位的平均分数,sql,average,Sql,Average,问题:如果学生的平均分数大于80,请编写一个查询,以显示学生ID和平均分数列表,小数点后两位。为average mark指定一个别名作为avg_mark。根据平均分数对结果进行排序 我编写了这个查询,但结果与预期的输出不匹配 select student_id, round(avg(value)) as avg_mark from mark where value>80 -------well this is wrong as I need to compare with an
select student_id, round(avg(value)) as avg_mark
from mark
where value>80 -------well this is wrong as I need to compare with an average of value
group by student_id
order by avg_mark
运行此查询会给出错误的输出[链接如下]
谢谢你 您希望
具有
而不是其中
:
select student_id, round(avg(value)) as avg_mark
from mark
group by student_id
having avg(value) > 80
order by avg_mark
请改用此函数
round(avg(value), 2)
这将有助于下面的代码应该可以正常工作
select student_id, cast(avg(value) as decimal(10,2)) as avg_mark from mark
group by student_id
having avg(value)>80
order by avg_mark;
根据studid从学生订单中选择studid、FirstName、trunc(介于(sysdate,dob)/12之间的月数)作为年龄 试试这个:
select student_id, round(avg(value)) as avg_mark
from mark
group by student_id
having avg(value) > 80
group by student_id
order by avg_mark
请仅使用您实际使用的数据库进行标记。虽然此代码块可能会回答此问题,但最好能提供一点解释,说明为什么会这样做。Hello@User157958。欢迎来到SO。请考虑看一下,以便有可能提高你的答案。一个简单的改进是将答案中的代码格式化,将其放入代码块中。