Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एकल SQL तालिका पर कुल गणना क्वेरी

मैं एक प्रश्न लिखकर शुरू करूंगा जो काम करता है कि भुगतान का एक हिस्सा क्या है। यानी प्रति payment_id , सभी राशियों का योग, इसे भुगतान करने के लिए आवश्यक लोगों की संख्या से विभाजित किया जाता है। फिर उस परिणाम को मूल डेटा में वापस जोड़ा जा सकता है।

SELECT
  payers_payments.payer_id,
  SUM(payers_payments.amount                      )   AS total_paid,
  SUM(payers_payments.pays * payments.single_share)   AS fair_share
FROM
  payers_payments
INNER JOIN
(
  SELECT
    payment_id,
    SUM(amount) / SUM(pays)   AS single_share
  FROM
    payers_payments
  GROUP BY
    payment_id
)
  AS payments
    ON  payers_payments.payment_id = payments.payment_id
GROUP BY
   payers_payments.payer_id

(payment_id) . दोनों पर इंडेक्स होने से फायदा होगा और (payer_id)

amount होने से लाभ होगा DECIMAL डेटा-प्रकार में फ़ील्ड, हालांकि आपको यह विचार करने की आवश्यकता है कि आप राउंडिंग के साथ क्या करना चाहते हैं। (10.00 के कुल भुगतान को तीन तरीकों से विभाजित करने की आवश्यकता है, 3.33 प्रत्येक और फिर आप अतिरिक्त 0.01 का क्या करना चाहते हैं?)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql संग्रहीत कार्यविधि मापदंडों को कैसे सूचीबद्ध करें

  2. एक MySQL उपयोगकर्ता को डेटाबेस बनाने के लिए किस अनुमति की आवश्यकता होती है?

  3. MySQL में महीनों में दो तिथियों के बीच अंतर की गणना कैसे करें

  4. mysqli_stmt ::bind_result ():बाइंड चर की संख्या तैयार कथन में फ़ील्ड की संख्या से मेल नहीं खाती

  5. क्लाइंट को MySQL सर्वर से सफलतापूर्वक कनेक्ट करें