PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Dlaczego nie mogę używać aliasów kolumn w następnym wyrażeniu SELECT?

Możesz użyć wcześniej utworzonego aliasu w GROUP BY lub HAVING instrukcja, ale nie w SELECT lub WHERE oświadczenie. Dzieje się tak, ponieważ program przetwarza wszystkie SELECT oświadczenie w tym samym czasie i nie zna jeszcze wartości aliasu.

Rozwiązaniem jest umieszczenie zapytania w podzapytaniu, a następnie alias jest dostępny na zewnątrz.

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. Używanie pyspark do łączenia się z PostgreSQL

  2. Implementacja Switchover/Switchback w PostgreSQL 9.3.

  3. Wyszukiwanie w indeksach wyrażeń

  4. Jak znaleźć liczbę wierszy dla wszystkich stołów w Postgresie?

  5. Co ::robi w PostgreSQL?