sql - 使用 SQL 使用列的值选择所有可能的行集
问题描述
我想知道仅使用 SQL 是否有可能。我在这里想要实现的目标如下:
具有以下列的 SQL 表:
------------
| DURATION |
|----------|
| 5 |
| 14 |
| 3 |
| 25 |
| . |
| . |
| . |
我想从小于或大于给定值的每行中选择满足 DURATION 总和的所有可能的行集。例如,如果值为 20,则小于 20 的结果应包含 3 组行
14 + 5
5 + 3
14 + 3
解决方案
考虑在两个字段之和小于零的条件下避免反向重复的自连接。注意:这只返回两对组合。
SELECT t1.DURATION, t2.DURATION
FROM myTable t1
LEFT JOIN myTable t2
ON t1.DURATION < t2.DURATION
WHERE t1.DURATION + t2.DURATION < 20
推荐阅读
- c# - 可选属性和可为空的引用应该如何协同工作?
- python - 错误消息:“列表”对象不可调用
- firebase - Firebase:将嵌套文件夹和文件批量上传到 Google Cloud Bucket
- java - 无法使用 strings.xml 文件中的数据填充数组
- reporting-services - SSRS:从报告中获取日期到标题文本框中
- python - 在 python 中修改 MIP 调度问题的 Gurobi 目标函数
- reactjs - 为什么在发出套接字事件后我会在反应中获得无限循环?
- android - 颤振在apk文件名中设置版本名称
- workbox - 如何将本地存储中的令牌添加到工作箱中 /api 路由器的每个 POST 请求中?
- json - 如何使用基于 Count IF 公式的计数器创建唯一 ID 计算列