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

अलग-अलग पंक्तियों के लिए MYSQL योग ()

मैं गलत हो सकता हूं लेकिन जो मैं समझता हूं उससे

  • रूपांतरण आईडी प्राथमिक कुंजी है आपकी तालिका के रूपांतरण
  • stats.id प्राथमिक कुंजी है आपकी तालिका के आंकड़े

इस प्रकार प्रत्येक रूपांतरण.आईडी के लिए आपने कम से कम एक लिंक.आईडी को प्रभावित किया है।

आप अनुरोध करते हैं कि 2 सेट का कार्टेशियन उत्पाद करना थोड़ा सा है:

[clicks]
SELECT *
FROM links 
LEFT OUTER JOIN stats ON links.id = stats.parent_id 

[conversions]
SELECT *
FROM links 
LEFT OUTER JOIN conversions ON links.id = conversions.link_id 

और प्रत्येक लिंक के लिए, आपको sizeof([clicks]) x sizeof([रूपांतरण]) रेखाएं मिलती हैं

जैसा कि आपने नोट किया है कि आपके अनुरोध में अद्वितीय रूपांतरणों की संख्या

. के माध्यम से प्राप्त की जा सकती है
count(distinct conversions.id) = sizeof([conversions])

यह विशिष्ट कार्टेशियन उत्पाद में सभी [क्लिक] लाइनों को हटाने का प्रबंधन करता है

लेकिन स्पष्ट रूप से

sum(conversions.value) = sum([conversions].value) * sizeof([clicks])

आपके मामले में, चूंकि

count(*) = sizeof([clicks]) x sizeof([conversions])
count(*) = sizeof([clicks]) x count(distinct conversions.id)

आपके पास है

sizeof([clicks]) = count(*)/count(distinct conversions.id)

इसलिए मैं

. के साथ आपके अनुरोध का परीक्षण करूंगा
SELECT links.id, 
   count(DISTINCT stats.id) as clicks, 
   count(DISTINCT conversions.id) as conversions, 
   sum(conversions.value)*count(DISTINCT conversions.id)/count(*) as conversion_value 
FROM links 
LEFT OUTER JOIN stats ON links.id = stats.parent_id 
LEFT OUTER JOIN conversions ON links.id = conversions.link_id 
GROUP BY links.id 
ORDER BY links.created desc;

मुझे तैनात रखें !जेरोम



  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_fetch_array ()/mysql_fetch_assoc ()/mysql_fetch_row ()/mysql_num_rows आदि... पैरामीटर 1 को संसाधन होने की अपेक्षा करता है

  2. MYSQL से MYSQLI में अपडेट हो रहा है

  3. Laravel में एकाधिक डेटाबेस का उपयोग कैसे करें

  4. mysql तिथि के अनुसार योग समूह का चयन करें

  5. कैसे mysql में हर इसी महीने का पहला दिन पाने के लिए?