sql - 我需要(最大和最小)>40 的差异
问题描述
我一直在处理这个查询以从 naap 表中选择最小值和最大值。我必须按城市分组,然后按城市订购。之后,我要找到 max 和 min > 40 之间的差异
数据和查询如下。
但是,我需要找到最大值和最小值之间的区别。
我的目标是仅显示最大值和最小值之间的差异大于 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```
解决方案
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;
注意SELECT
andGROUP BY
应该是一致的。我猜你想要的价值是city
而不是state
。
一些数据库允许您diff
在HAVING
子句中使用而不是重复表达式。而且,你不需要选择diff
它来过滤,但我认为将它放在结果集中很方便。
推荐阅读
- kurento - 为什么 kurento 媒体服务器与 ant-media 相比表现不佳?
- c++ - C++ EXC_BAD_INSTRUCTION?
- google-cloud-platform - 如何使 gsutil 自动完成更快或禁用自动完成
- c - 如何读取输入直到C中的空行
- java - Spring Boot - 无法排除默认日志记录
- ajax - 如何使用ajax在控制器中调用symfony函数?
- python - 从实时非 youtube 视频流中提取图像帧
- php - PHP - Laravel,MySQL,Select Exists 查询结果变量及其访问权限
- digital-signature - 使用 openssl_pkcs7_sign 对 PDF 进行 PHP 签名
- python - 使用python的强迫振动二阶微分方程