sql - हाइव एसक्यूएल: गिनती और औसत



count hive (1)

मैं हाल ही में हाइव सीखने की कोशिश कर रहा हूं और मुझे एक एसक्यूएल परामर्श के साथ समस्या है। मेरे पास कुछ जानकारी के साथ एक json फ़ाइल है मैं प्रत्येक रजिस्टर के लिए औसत प्राप्त करना चाहता हूं। उदाहरण में बेहतर:

country  times
USA      1
USA      1
USA      1
ES       1
ES       1
ENG      1
FR       1

तो अगले परामर्श के साथ:

select country, count(*) from data;

मुझे मिला:

country   times
USA        3
ES         2
ENG        1 
FR         1

तो मुझे आगे निकल जाना चाहिए:

country   avg
USA       0,42  (3/7)
ES        0,28  (2/7)
ENG       0,14  (1/7)
FR        0,14  (1/7)

मुझे नहीं पता कि मैं यह कैसे पहली तालिका से प्राप्त कर सकता हूं।

मैंने कोशिश की:

select t1.country, avg(t1.tm), 
from (
    select country,count(*)as tm from data where not country is null group by country
) t1
group by t1.country;

लेकिन मेरे बाहर गलत है

मदद के लिए धन्यवाद!! बी आर।


परिणाम प्राप्त करने के लिए कुल गिनती से प्रत्येक समूह को गिनें। अपनी तालिका में रिकॉर्ड की कुल संख्या को खोजने के लिए Sub-Query का उपयोग करें

इसे इस्तेमाल करे

select t1.country, count(*)/IFNULL((select cast(count(*) as float) from data),0)
from data
group by t1.country;




average