Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 试图从一组聚合中获取最大值_Sql_Sqlite - Fatal编程技术网

Sql 试图从一组聚合中获取最大值

Sql 试图从一组聚合中获取最大值,sql,sqlite,Sql,Sqlite,这里是我的模式:考试(整数学生,整数分数) 我正在编写一个SQL查询,以查找学生成绩之间的最大差异 我已经能够使用此查询生成包含学生id及其分布的查询: select student, max(score) - min(score) from exams group by student; 这就是我被难倒的地方。如何获得差价的最大值?更具体地说,我真的不明白在我的select语句中放什么,这将超出我的初始查询。尝试以下方法: select student, max(score) - min(s

这里是我的模式:考试(整数学生,整数分数) 我正在编写一个SQL查询,以查找学生成绩之间的最大差异

我已经能够使用此查询生成包含学生id及其分布的查询:

select student, max(score) - min(score) from exams group by student;
这就是我被难倒的地方。如何获得差价的最大值?更具体地说,我真的不明白在我的select语句中放什么,这将超出我的初始查询。

尝试以下方法:

select student, max(score) - min(score) as SPREAD
from exams 
group by student
order by (max(score) - min(score)) DESC

这将至少显示从最高到最低的结果。您还可以使用子查询:

select max(spread)
from (
    select student, max(score) - min(score) as spread from exams group by student
) x;

您正在寻找学生得分之间的最大差距。这不是查询返回的结果吗?所有学生都有他们最大的传播?你的预期产出是多少?还有,您使用的是什么数据库管理系统?很抱歉不清楚。我试图找到最大的传播。如果学生A的分数是30分和50分,B的分数是20分和80分,那么B的得分将是自20世纪以来最高的,这正是我想要做的。我一直得到一个错误,虽然没有这样的列:传播exitst@Ihatesyntaxerrors你确定你复制了这个?传播=部分?你可以试着把代码> max(得分)-min(分数)作为传播< /代码>在中间部分,也许我的语法在你的SQL版本上不起作用。得到它,我第一次错过了一个字符。谢谢