मेरे पास एक सारणी है जो इस तरह दिखती है:
lob|desc|cnt
dogs,declined,5
cats,declined,5
rats,declined,8
dogs,failed,2
मैं एक नई तालिका बनाने की कोशिश कर रहा हूं जो इस तरह दिखती है:
lob|cnt|failed_cnt
dogs,5,2
cats,5,0
rats,8,0
अनिवार्य रूप से, मैं एलओबी कॉलम द्वारा परिणामों को एक साथ मिला रहा हूं, इसलिए कोई डुप्लिकेट रिकॉर्ड नहीं है। LOB मान जो स्तंभ मान को घटाते हैं, विफल हो जाते हैं, उन्हें एक साथ मर्ज करें और उस cnt को लें और इसे नए कॉलम ""fail_cnt" में डालें। अगर यह समझ में आता है।
मैंने कुछ एसक्यूएल कोड लिखा है जो शून्य मान रखता है लेकिन अभी भी डुप्लीकेट हैं। यहाँ मेरा आउटपुट है:
lob|cnt|failed_cnt
dogs,5,0
cats,5,0
rats,8,0
dogs 0,2
यहाँ मेरा कोड है:
SELECT
lob,
CASE
WHEN CNT <> 0 AND desc not like 'Failed%'
THEN CNT
ELSE 0
END AS CNT,
CASE
WHEN CNT <> 0 AND desc LIKE 'Failed%'
THEN CNT
ELSE 0
END AS FAILED_CNT
FROM
table1
कोई विचार या सुझाव?
1 उत्तर
एकत्रीकरण का प्रयोग करें:
select lob,
sum(case when descr = 'declined' then cnt else 0 end) as declined,
sum(case when descr = 'failed' then cnt else 0 end) as failed
from t
group by lob;
संबंधित सवाल
नए सवाल
sql
संरचित क्वेरी भाषा (एसक्यूएल) डेटाबेस को क्वेरी करने के लिए एक भाषा है। प्रश्नों में कोड उदाहरण, तालिका संरचना, नमूना डेटा और DBMS कार्यान्वयन के लिए एक टैग (जैसे MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, आदि) का उपयोग किया जाना चाहिए। यदि आपका प्रश्न केवल एक विशिष्ट DBMS (विशिष्ट एक्सटेंशन / सुविधाओं का उपयोग करता है) से संबंधित है, तो इसके बजाय उस DBMS के टैग का उपयोग करें। एसक्यूएल के साथ टैग किए गए सवालों के जवाब में आईएसओ / आईईसी मानक एसक्यूएल का उपयोग करना चाहिए।