sql - SQL 查询选择小于或等于现有列的 (max - min) 的行
问题描述
假设我有一个名为 age 的表,其中包含一个名为 age 的列,该列仅包含年龄整数行。
我想找到小于或等于 (MAX(age) - MIN(age)) 的行。
我第一次采取的方法是
SELECT * FROM ages WHERE age <= MAX(age) - MIN(age)
这不起作用,因为我们不能在 where 子句中使用聚合。
有没有人可以使用 sql 查询来解决这个问题?
解决方案
两步:
- 聚合表以查找最大值、最小值和差值。
- 然后与您的行进行比较。
查询由一个主查询和一个子查询组成:
SELECT * FROM ages WHERE age <= (SELECT MAX(age) - MIN(age) FROM ages);
推荐阅读
- php - 如何使列表目录中的文件夹显示为按钮,文件显示为可下载的链接?
- swift - Swift:SimplePing 计时器未触发
- javascript - 如何防止用户轻易访问localStorage
- javascript - EJS 在 Javascript 中拆分语句的规则是什么?
- html - chrome突然没有在表格内包裹内联块
- c++ - 如何访问 Boost Graph 中的边缘信息?
- r - 来自闪亮的 runApp() 不适用于代码或 RStudio 的按钮
- python-3.x - 标签不会出现在 tkinter 弹出窗口上
- javascript - 为什么在类方法中使用我的实例属性未定义?
- visual-studio-code - 如何在 VSCode 中使用 GitLens 将 HEAD 与另一个分支进行比较?