PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Mengapa saya tidak bisa menggunakan alias kolom dalam ekspresi SELECT berikutnya?

Anda dapat menggunakan alias yang dibuat sebelumnya di GROUP BY atau HAVING pernyataan tetapi tidak dalam SELECT atau WHERE penyataan. Ini karena program memproses semua SELECT pernyataan pada saat yang sama dan belum mengetahui nilai alias.

Solusinya adalah merangkum kueri dalam subkueri dan kemudian alias tersedia di luar.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PG::Error:SELECT DISTINCT, ORDER BY ekspresi harus muncul di daftar pilih

  2. Nama tabel atau kolom tidak boleh diawali dengan angka?

  3. Cara Membuat Pengguna di PostgreSQL

  4. Bagaimana cara mendeklarasikan variabel lokal di postgresql?

  5. PL/pgSQL memeriksa apakah ada baris