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

postgresql वापसी 0 यदि लौटाया गया मान शून्य है

एक साथ उपयोग करें

COALESCE(value [, ...])
The COALESCE function returns the first of its arguments that is not null.  
Null is returned only if all arguments are null. It is often
used to substitute a default value for null values when data is
retrieved for display.

संपादित करें

यहां COALESCE का एक उदाहरण दिया गया है आपकी क्वेरी के साथ:

SELECT AVG( price )
FROM(
      SELECT *, cume_dist() OVER ( ORDER BY price DESC ) FROM web_price_scan
      WHERE listing_Type = 'AARM'
        AND u_kbalikepartnumbers_id = 1000307
        AND ( EXTRACT( DAY FROM ( NOW() - dateEnded ) ) ) * 24 < 48
        AND COALESCE( price, 0 ) > ( SELECT AVG( COALESCE( price, 0 ) )* 0.50
                                     FROM ( SELECT *, cume_dist() OVER ( ORDER BY price DESC )
                                           FROM web_price_scan
                                           WHERE listing_Type='AARM'
                                             AND u_kbalikepartnumbers_id = 1000307
                                             AND ( EXTRACT( DAY FROM ( NOW() - dateEnded ) ) ) * 24 < 48
                                         ) g
                                    WHERE cume_dist < 0.50
                                  )
        AND COALESCE( price, 0 ) < ( SELECT AVG( COALESCE( price, 0 ) ) *2
                                     FROM( SELECT *, cume_dist() OVER ( ORDER BY price desc )
                                           FROM web_price_scan
                                           WHERE listing_Type='AARM'
                                             AND u_kbalikepartnumbers_id = 1000307
                                             AND ( EXTRACT( DAY FROM ( NOW() - dateEnded ) ) ) * 24 < 48
                                         ) d
                                     WHERE cume_dist < 0.50)
     )s
HAVING COUNT(*) > 5

IMHO COALESCE AVG . के साथ प्रयोग नहीं किया जाना चाहिए क्योंकि यह मूल्य को संशोधित करता है। NULL मतलब अज्ञात और कुछ नहीं। यह SUM . में इसका उपयोग करने जैसा नहीं है . इस उदाहरण में, यदि हम AVG . को प्रतिस्थापित करते हैं SUM . द्वारा , परिणाम विकृत नहीं है। किसी योग में 0 जोड़ने से किसी को नुकसान नहीं होता है लेकिन अज्ञात मानों के लिए 0 के साथ औसत की गणना करने पर आपको वास्तविक औसत नहीं मिलता है।

उस स्थिति में, मैं जोड़ूंगा price IS NOT NULL WHERE . में इन अज्ञात मूल्यों से बचने के लिए खंड।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रेल:ActiveRecord::Base . के लिए कोई कनेक्शन पूल नहीं

  2. पोस्टग्रेएसक्यूएल के लिए पीजीपूल के लिए एक गाइड:भाग एक

  3. PostgreSQL में लघु दिन का नाम प्राप्त करें

  4. ClusterControl 1.8.2 . के साथ PostgreSQL के लिए PgBouncer कनेक्शन पूलर का उपयोग करना

  5. पोस्टग्रेएसक्यूएल में लेटरल जॉइन और सबक्वेरी में क्या अंतर है?