Sql 我需要(最大值和最小值)的差值>;40
我在这个查询中从naap表中选择了min和max。我必须按城市分组,然后按城市排序。之后,我要找出最大值和最小值之间的差异>40 数据和查询如下 但是,我需要找出max和min之间的差异 我的目标是只显示最大值与最小值之差大于40的结果。 如何找到(最大值和最小值)>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
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
子句中提供函数。如果您提供了解决方案,请检查