我有兩個表(例如帶有 c、d 列的表 a 和帶有 e 列的表 b)。我正在嘗試像這樣進行數學運算:(c d) * e 用于此表中最后n行中的每一行( ORDER BY id desc limit n) 保持行的順序。
我已經嘗試過這個查詢:
SELECT f1.r1 * f2.r2
FROM (
select c d as r1
from a
order by id desc
limit n
) as f1,
(select e as r2
from b
order by id desc
limit n) as f2
但它回傳 n^2 列(我只需要 n)。
PS:我不能使用 join 因為這個表中行的 id 不相關
uj5u.com熱心網友回復:
您可以使用joinnot onid但 on row_number():
with u as
(select c, d, row_number() over(order by id desc) as rownum_a from a),
v as (select e, row_number() over(order by id desc) as rownum_b from b)
(select c, d, e, (c d)*e as "(c d)*e" from u inner join v on rownum_a =
rownum_b limit n)
小提琴
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/385347.html
標籤:sql PostgreSQL的
