PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

मैं अगली चयन अभिव्यक्ति में कॉलम उपनाम का उपयोग क्यों नहीं कर सकता?

आप GROUP BY . में पहले से बनाए गए उपनाम का उपयोग कर सकते हैं या HAVING कथन लेकिन SELECT . में नहीं या WHERE बयान। ऐसा इसलिए है क्योंकि प्रोग्राम सभी SELECT . को प्रोसेस करता है एक ही समय में बयान और उपनाम के मूल्य को अभी तक नहीं जानता है।

समाधान एक सबक्वेरी में क्वेरी को इनकैप्सुलेट करना है और फिर अन्य नाम बाहर उपलब्ध है।

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. स्थानीय रूप से आपूर्ति की गई सूची का उपयोग करके दूरस्थ पोस्टग्रेस्क्ल डेटाबेस से रिकॉर्ड हटाना

  2. स्तंभों के लिए PostgreSQL पंक्ति

  3. PostgreSQL में क्रॉसस्टैब के लिए गतिशील रूप से कॉलम उत्पन्न करें

  4. PostgreSQL में डुप्लिकेट अपडेट पर डालें?

  5. pg_restore चलाते समय फ़ाइल हेडर में [संग्रहकर्ता] असमर्थित संस्करण (1.13) प्राप्त करना