मेरे पास 5 कॉलम के साथ नीचे एक हाइव टेबल है
name orderno productcategory amount description
KJFSFKS 1 1 40 D1
KJFSFKS 2 2 50 D2
KJFSFKS 3 2 67 D3
KJFSFKS 4 2 10 D4
KJFSFKS 5 3 2 D5
KJFSFKS 6 3 5 D6
KJFSFKS 7 3 6 D7
KJFSFKS 8 4 8 D8
KJFSFKS 9 5 8 D9
KJFSFKS 10 5 10 D10
समान उत्पाद श्रेणी कोड के आधार पर वांछित आउटपुट, यदि उत्पाद श्रेणी कोड कई पंक्तियों में समान है, तो राशि फ़ील्ड जोड़ें, उच्चतम ऑर्डरनो के आधार पर विवरण चुनें, ऑर्डरनो हमेशा पिकलोवेस्ट, आउटपुट नीचे के रूप में
name orderno productcategory amount description
KJFSFKS 1 1 40 D1
KJFSFKS 2 2 127 D4
KJFSFKS 5 3 13 D7
KJFSFKS 8 4 8 D8
KJFSFKS 9 5 18 D10
जैसा कि ऊपर कहा गया है, कुछ फ़ील्ड किसी क्रम में हैं, अन्य अलग-अलग क्रम में हैं
मैंने समूह का उपयोग किया लेकिन योग (राशि) ठीक है, विवरण फ़ील्ड के बारे में क्या है, यह ऑर्डरनो कॉलम पर आधारित है, मेरी आवश्यकता में अन्य कॉलम भी हैं जहां मुझे ऑर्डर नंबर के आधार पर चुनना चाहिए
2 जवाब
select name, orderno, productcategory, amount, description
from
(
select name, orderno, productcategory,
sum(amount) over(partition by name, productcategory) amount,
first_value(description) over(partition by name, productcategory order by orderno desc) description,
row_number() over (partition by name, productcategory order by orderno) rn
from your_table
)s where rn=1; --pick lowest orderno
OK
KJFSFKS 1 1 40 D1
KJFSFKS 2 2 127 D4
KJFSFKS 5 3 13 D7
KJFSFKS 8 4 8 D8
KJFSFKS 9 5 18 D10
Time taken: 12.492 seconds, Fetched: 5 row(s)
select name
,min(orderno) as orderno
,productcategory
,sum(amount) as amount
,max(named_struct('orderno',orderno,'description',description)).description
from mytable
group by name
,productcategory
;
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
sql
संरचित क्वेरी भाषा (एसक्यूएल) डेटाबेस को क्वेरी करने के लिए एक भाषा है। प्रश्नों में कोड उदाहरण, तालिका संरचना, नमूना डेटा और DBMS कार्यान्वयन के लिए एक टैग (जैसे MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, आदि) का उपयोग किया जाना चाहिए। यदि आपका प्रश्न केवल एक विशिष्ट DBMS (विशिष्ट एक्सटेंशन / सुविधाओं का उपयोग करता है) से संबंधित है, तो इसके बजाय उस DBMS के टैग का उपयोग करें। एसक्यूएल के साथ टैग किए गए सवालों के जवाब में आईएसओ / आईईसी मानक एसक्यूएल का उपयोग करना चाहिए।