Diciamo che ho qualcosa di simile a questo:Riferendosi alle colonne dinamiche in una query postgres?
select sum(points) as total_points
from sometable
where total_points > 25
group by username
io sono in grado di fare riferimento a total_points
nella clausola in cui perché ricevo il seguente errore: ERROR: column "total_points" does not exist
. In questo caso non avrei problemi a riscrivere sum(points)
nella clausola where, ma mi piacerebbe un modo per fare ciò che ho sopra.
- C'è un modo per memorizzare il risultato in una variabile senza utilizzando una stored procedure?
- Se io faccio riscrittura
sum(points)
nella clausola WHERE, è Postgres abbastanza intelligente da non ricalcolare esso?
No, Postgres supporta la clausola HAVING - vedi risposta di Quassnoi. –
Mentre 'PostgreSQL' supporta la clausola' HAVING', anche questa è una risposta valida (eccetto che la subquery dovrebbe essere alias). Non vedo alcun motivo per fare downvoting. – Quassnoi
@Quassnoi - Concordato. Sarei PIÙ usare l'HAVING per cose semplici, come 'SUM',' COUNT', ecc., Ma se sto facendo una funzione matematica prolissa per il mio alias, preferirei impostarlo in una sottoquery quindi la mia query sembra più pulita/più bella. –