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

दो अलग-अलग तालिकाओं से स्तंभों के बीच अंकगणितीय संचालन करने वाले फ़ंक्शन का उपयोग करके एक तालिका में कॉलम जोड़ने में सहायता की आवश्यकता है

हम क्वेरी को साफ करके शुरू करेंगे। आपको हमेशा प्रत्येक पंक्ति में अपनी गणना करने की कोशिश करनी चाहिए, जब संभव हो तो कई लंबवत सबक्वेरी करने के बजाय, क्योंकि यह DBMS को एक ही टेबल पर कई पास बनाने से बचाता है।

SELECT
  (
   ( (g.wbb  * SUM(IF(e.event_cd = 14, 1, 0)))
   + (g.whbp * SUM(IF(e.event_cd = 16, 1, 0)))
   + (g.w1b  * SUM(IF(e.event_cd = 20, 1, 0)))
   + (g.w2b  * SUM(IF(e.event_cd = 21, 1, 0)))
   + (g.w3b  * SUM(IF(e.event_cd = 22, 1, 0)))
   + (g.whr  * SUM(IF(e.event_cd = 23, 1, 0)))
   )
   /
   (
     SUM(IF(e.ab_fl = 'T',   1, 0))
   + SUM(IF(e.event_cd = 14, 1, 0))
   + SUM(IF(e.sf_fl = 'T',   1, 0))
   + SUM(IF(e.event_cd = 16, 1, 0))
   )
  ) AS woba
  FROM events e, guts g
  WHERE e.year_id = g.season_id
    AND e.pit_start_fl = 'T'
    AND e.pit_id = starting_pitcher
  GROUP BY g.season;

यह मानते हुए कि मैंने कहीं अल्पविराम नहीं छोड़ा है, यह एक कॉलम woba लौटाएगा निर्दिष्ट आरंभिक घड़े के लिए प्रत्येक वर्ष के लिए।

ध्यान दें कि मैं e.year_id . पर तालिकाओं में शामिल हो गया हूं SUBSTRING(e.game_ID,4,4) . के बजाय; यह SUBSTRING() calling को कॉल करने के ऊपरी हिस्से से बचा जाता है प्रत्येक रिकॉर्ड पर। इस तरह की बात मामूली लगती है, लेकिन यह एक बड़ी मेज पर जल्दी से जुड़ सकती है।

यह आपको आरंभ करने के लिए पर्याप्त होना चाहिए।




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

  2. CentOs Php और MySql कॉन्फ़िगरेशन

  3. MySql में DATETIME फ़ील्ड के दिनांक भाग पर कोई अनुक्रमणिका कैसे बनाता है?

  4. MySQL के साथ एक वेबसाइट बनाएं

  5. माइक्रोसॉफ्ट एसक्यूएल में MySQL लॉन्गटेक्स्ट एनालॉग?