एक साथ उपयोग करें
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
. में इन अज्ञात मूल्यों से बचने के लिए खंड।