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

MySQL - समूह से अधिकतम मूल्य कैसे फ़िल्टर करें और दिखाएं?

एक संभावित समाधान HAVING . का उपयोग करना है और ALL

SELECT s.shopname AS "Store",
   e.empname AS "Employee",
   e1.empname AS "Manager",
   SUM(p.amount) AS "Total Sales"
FROM fss_Shop s
   JOIN fss_Employee e ON e.shopid = s.shopid
   JOIN fss_Payment p ON p.empnin = e.empnin
   JOIN fss_Employee e1 ON e1.empnin = e.mgrnin
GROUP BY e.empname, s.shopid
HAVING SUM(p.amount) >= ALL(
   SELECT SUM(p.amount)
   FROM fss_Employee e
   JOIN fss_Payment p ON p.empnin = e.empnin
   WHERE e.shopid = s.shopid
   GROUP BY e.empname
)

अगर ALL आपके लिए काम नहीं करता है। आप इसे इस तरह बदल सकते हैं

SELECT s.shopname AS "Store",
   e.empname AS "Employee",
   e1.empname AS "Manager",
   SUM(p.amount) AS "Total Sales"
FROM fss_Shop s
   JOIN fss_Employee e ON e.shopid = s.shopid
   JOIN fss_Payment p ON p.empnin = e.empnin
   JOIN fss_Employee e1 ON e1.empnin = e.mgrnin
GROUP BY e.empname, e.shopid
HAVING SUM(p.amount) = (
   SELECT MAX(t.samount)
   FROM
   (
     SELECT SUM(p.amount) samount
     FROM fss_Employee emp
     JOIN fss_Payment p ON p.empnin = emp.empnin
     WHERE emp.shopid = e.shopid
     GROUP BY emp.empname
   ) t
)

ठीक है और अगला संस्करण जो FROM . के पीछे सहसंबद्ध उपश्रेणी से बचता है

SELECT s.shopname AS "Store",
   e.empname AS "Employee",
   e1.empname AS "Manager",
   SUM(p.amount) AS "Total Sales"
FROM fss_Shop s
   JOIN fss_Employee e ON e.shopid = s.shopid
   JOIN fss_Payment p ON p.empnin = e.empnin
   JOIN fss_Employee e1 ON e1.empnin = e.mgrnin
GROUP BY e.empnin, e.shopid
HAVING (e.shopid, SUM(p.amount)) IN
(
  SELECT t.shopid, MAX(t.samount)
  FROM 
  (
     SELECT emp.shopid, SUM(p.amount) samount
     FROM fss_Employee emp
     JOIN fss_Payment p ON p.empnin = emp.empnin
     GROUP BY emp.empname, emp.shopid
  ) t
  GROUP BY t.shopid
) 



  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. स्तंभ मान संयोजनों के आधार पर अद्वितीय पंक्तियों को कैसे प्राप्त करें?

  3. दो चयन कथनों के बीच MySQL कार्टेशियन उत्पाद

  4. जावा एपेंगिन विकास के दौरान Google क्लाउड SQL का उपयोग करना (स्थानीय MySQL उदाहरण के बजाय)

  5. जब मैं यूयूआईडी को MySQL में अपनी प्राथमिक कुंजी के रूप में उपयोग करता हूं तो प्रदर्शन को कैसे प्रभावित कर सकता है