/ / Selezionare l'ennesimo valore dalla tabella PostgreSQL e utilizzarlo in una query: sql, postgresql

Selezionare il valore Nth dalla tabella PostgreSQL e utilizzare in una query - sql, postgresql

Vorrei applicare il valore di una colonna nell'ennesima riga della mia tabella a tutte le righe della tabella. È possibile solo in PostgreSQL?

risposte:

3 per risposta № 1
select *
from <<TABLE>>
limit 1 offset <N>

Modifica: Siamo spiacenti, hai letto male il tuo messaggio. Non avevo capito che anche tu avessi bisogno di un aggiornamento.

UPDATE <<TABLE1>>
SET <<COLUMN1> = (SELECT <<COLUMN2>> FROM <<TABLE2>> limit 1 offset <<N>>)

Postgres Docs


0 per risposta № 2

Se non avessi accesso in scrittura, potresti farloqualcosa con le funzioni della finestra. Questo potrebbe probabilmente essere semplificato o ampliato (in particolare con il modo in cui prende "n", a seconda del caso d'uso). Sfortunatamente, non è possibile avere funzioni di finestra all'interno di funzioni di finestra.

create temp table test(val numeric);
insert into test select * from generate_series(101,200,1);

select max(case when rn = n then val else null end) over () as nthvalue, val
from(
select row_number() over (order by val) as rn, val, n
from (select val, 9 as n from test) as added_n) as obtained_rownum;