मेरे पास प्रश्न है:

SELECT sum(column_1),
   sum(...) as sum_1,
   sum(...) as sum_2,
   sum(...) as sum_3
FROM table_1

Sum_1, sum_2, sum_3 से औसत डेटा कैसे प्राप्त करें? अगर मैं अगले तरीके से कोई प्रश्न लिखता हूं:

SELECT sum(column_1),
   sum(...) as sum_1,
   sum(...) as sum_2,
   sum(...) as sum_3,
   avg(sum_1, sum_2, sum_3)
FROM table_1

मुझे एक त्रुटि मिली:

[४२७०३] त्रुटि: कॉलम "sum_1" मौजूद नहीं है

0
Dave Colland 26 नवम्बर 2020, 14:05

1 उत्तर

सबसे बढ़िया उत्तर

ऐसा लगता है कि आप एक ही पंक्ति पर तीन स्तंभों के औसत की गणना करना चाहते हैं। यदि ऐसा है, तो आपको avg() की आवश्यकता नहीं है (यह एक समग्र कार्य है, जो पंक्तियों में संचालित होता है)। इसके बजाय, आप नियमित अंकगणित का उपयोग कर सकते हैं:

SELECT *, (sum_1 + sum_2 + sum_3) / 3 as sum_average
FROM (
    SELECT sum(column_1), sum(...) as sum_1, sum(...) as sum_2,sum(...) as sum_3
    FROM table_1
) t

सबक्वायरी सख्ती से जरूरी नहीं है। आप sum()s को भी दोहरा सकते हैं, जैसे:

SELECT sum(column_1), sum(...) as sum_1, sum(...) as sum_2,sum(...) as sum_3,
    (sum(...) + sum(...) + sum(...)) / 3 as sum_average
FROM table_1
3
GMB 26 नवम्बर 2020, 14:08