我有一個非常簡單的查詢,我一直在嘗試僅過濾 MAX(b.id) :
SELECT
A.id,
b.id
from emp A
JOIN ACS B
ON B.id = A.id
and A.id =1553
在表 B 中,A.ID 有三行。我只需要得到更高的。我嘗試使用“MAX(B.ID)”,但沒有用。
這些是結果:
[
{
"rownumber": 1,
"A.id": 1553,
"b.id": 749
},
{
"rownumber": 2,
"A.id": 1553,
"b.id": 4356
},
{
"rownumber": 3,
"A.id": 1553,
"b.id": 4661
}
]
我只需要回傳 MAX(b.ID)。在這種情況下,我只需要:
{
"rownumber": 3,
"emp_id": 1553,
"id": 4661
}
我將從過濾器選擇中洗掉 A.id,對于 AI 中的每一行,只需要 B 中的 MAX。
提前致謝!
最好的方法是什么?
uj5u.com熱心網友回復:
一個簡單的方法是使用RANK().
試試這個:
select *
from
(
SELECT
A.id,
b.id,
RANK()OVER(ORDER BY b.ID desc) as rnk
from emp A
JOIN ACS B
ON B.id = A.id
and A.id =1553
) as r
where rnk=1
uj5u.com熱心網友回復:
因為你只想要idfromACS你可以使用相關的子查詢
select e.id, (select Max(id) from ACS a where a.id = e.id) id
from emp e
where e.id = 1553;
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/387416.html
