sql - 从表中选择 ID,其中 (no, id) in (ID, >5000)
问题描述
我有一张有 id 的桌子,没有:
id | no
A999 | 6000
A999 | 5000
A999 | 3000
A999 | 1000
B999 | 5000
B999 | 4000
B999 | 7000
B999 | 9000
C999 | 9000
C999 | 5000
C999 | 2000
C999 | 1000
从中我为每个 id 选择一个限制 no(选择 id,max(现在在哪里 ...),结果如下:
id | no
A999 | 5000
B999 | 7000
C999 | 2000
现在我可以进行这个查询了,它工作正常:
SELECT *
FROM table
WHERE (no, id)
IN (The select above)
它给了我 3 行。
但是,如果我想从 select 中查询带有 id 的行,而从 select 中查询 no> no 像:
SELECT *
FROM table
WHERE (no, >id)
IN (The select above)
有了这个结果:
id | no
A999 | 6000
A999 | 5000
B999 | 7000
B999 | 9000
C999 | 2000
C999 | 1000
可以这样做吗?
BR克雷斯顿
解决方案
一种方法是join
:
select t.*
from t join
(select id, max(no) where ...) tt
on t.id = tt.id and t.no > tt.no;
推荐阅读
- ios - 更改 unwind segue 的动画
- java - json数据的Apache Beam流处理
- oauth-2.0 - 用于个人帐户的 Microsoft Graph 电子邮件 API(webhook)?
- sql-server - 选择计数时在字符串上将 varchar 转换为 int 的 SQL 错误
- reactjs - 带有 React 的 Socket.io,未收到服务器到客户端发出调用
- angular - Angular 5 按日期排序
- plot - Gnuplot:带有仅包含 x 和 b(x) 的数据文件的 splot
- mysql - 在 ALTER TABLE 中使用多个操作进行表遍历
- sql - sql查询根据数据不同的列对2个表的列求和
- php - 试图让 PHP XDebug 与 Visual Studio Code 一起工作