sql >> Databáze >  >> RDS >> PostgreSQL

Proč nemohu v dalším výrazu SELECT použít aliasy sloupců?

V GROUP BY můžete použít dříve vytvořený alias nebo HAVING příkaz, ale ne v SELECT nebo WHERE prohlášení. Je to proto, že program zpracovává všechny SELECT a ještě nezná hodnotu aliasu.

Řešením je zapouzdřit dotaz do dílčího dotazu a poté je alias dostupný venku.

SELECT stddev_time, max_time, avg_time, min_time, cnt, 
       ROUND(avg_time * cnt, 2) as slowdown
FROM (
        SELECT 
            COALESCE(ROUND(stddev_samp(time), 2), 0) as stddev_time, 
            MAX(time) as max_time, 
            ROUND(AVG(time), 2) as avg_time, 
            MIN(time) as min_time, 
            COUNT(path) as cnt, 
            path
        FROM 
            loadtime
        GROUP BY
            path
        ORDER BY
            avg_time DESC
        LIMIT 10
   ) X;


  1. Funkce RPAD() v PostgreSQL

  2. Spuštění SQL Serveru 2014 na virtuálním počítači Azure

  3. Připojte se k nám v Amsterdamu na setkání s OptimaData &VidaXL

  4. Hibernate + PostgreSQL + Typ síťové adresy (inet, cdir)