Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.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 我需要(最大值和最小值)的差值>;40_Sql - Fatal编程技术网

Sql 我需要(最大值和最小值)的差值>;40

Sql 我需要(最大值和最小值)的差值>;40,sql,Sql,我在这个查询中从naap表中选择了min和max。我必须按城市分组,然后按城市排序。之后,我要找出最大值和最小值之间的差异>40 数据和查询如下 但是,我需要找出max和min之间的差异 我的目标是只显示最大值与最小值之差大于40的结果。 如何找到(最大值和最小值)>40的差异 在这一点上我迷路了。请帮忙 SELECT state, MIN(avg_score), MAX(avg_score) FROM naap GROUP BY city HAVING MIN (avg_sc

我在这个查询中从naap表中选择了min和max。我必须按城市分组,然后按城市排序。之后,我要找出最大值和最小值之间的差异>40

数据和查询如下

但是,我需要找出max和min之间的差异

我的目标是只显示最大值与最小值之差大于40的结果。 如何找到(最大值和最小值)>40的差异 在这一点上我迷路了。请帮忙

SELECT state, 
    MIN(avg_score),
    MAX(avg_score)
FROM naap
GROUP BY city
HAVING MIN (avg_score) >40
ORDER by city;
这是我的数据

columns: avg_score, avg_loss, avg_loss_2, id, city, state, year
table: city_stats
columns: city, average, min_pop, max_pop, standard_deviation```

请使用下面的查询查找差异

SELECT state, 
    MIN(avg_score),
    MAX(avg_score)
FROM naap
GROUP BY city
HAVING (MAX(avg_score) - MIN(avg_score)) >40
ORDER by city;

如果我理解正确,您需要在
having
子句中使用表达式:

SELECT city, MIN(avg_score), MAX(avg_score), MAX(avg_score) - MIN(avg_score) as diff
FROM naap
GROUP BY city
HAVING  MAX(avg_score) - MIN(avg_score) > 40
ORDER by city;
请注意,
选择
分组依据
应该一致。我猜您想要的是城市的值,而不是州的值


某些数据库允许您在
HAVING
子句中使用
diff
,而不是重复表达式。而且,您不需要选择
diff
进行筛选,但我认为将其放入结果集中比较方便。

只需在“选择”中添加另一列:
max(avg_分数)-min(avg_分数)作为diff
请标记您正在使用的数据库您的查询格式不正确,因为您选择的是
状态
,但按
城市
聚合。我假设在整个查询过程中应该引用
city
。或者你们两个都想要。是的,我的意思是城市的一致性。谢谢你指出这一点。我本来就错过了。至于HAVING条款,我想这就是我想要的。我现在要测试一下。谢谢你的指导。嗨,吉姆,我在问题op中添加了数据。我的目标是显示最大值和最小值之间的差异大于40的结果。严格来说,这不是最小值和最大值之间的区别。我澄清了上面的问题。非常感谢。然后您只需要在
HAVING
子句中提供函数。如果您提供了解决方案,请检查