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

MySQL प्रत्येक घटना की पंक्तियों का चयन (एन) करता है

आप जो करने की कोशिश कर रहे हैं वह प्रति समूह कई रिकॉर्ड का चयन करना है। यह आपकी क्वेरी में इसी तरह के वेरिएबल का उपयोग करके किया जा सकता है:

select *
from
(
    SELECT sid, 
        state, 
        votes,
        @prev := @curr,
        @curr := state,
        @rank := IF(@prev = @curr, @rank+1, 1) AS rank
    FROM
    (
      select t1.sid, state, votes
      FROM table1 t1
      INNER JOIN table2 t2
          ON t1.sid=t2.sid
    ) src, (SELECT @curr := null, @prev := null, @rank := 1) r
    ORDER BY state, votes desc
) src
where rank <= 2
order by state, votes;

देखें SQL Fiddle with Demo

ऐसा करने के और भी तरीके हैं जो यहां बताए गए हैं:

उपयोग करना प्रति समूह N परिणाम प्राप्त करने के लिए GROUP BY के भीतर LIMIT करें?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. दो तालिकाओं के लिए कई स्थितियों के आधार पर घटनाओं की गणना करें

  2. SQL सर्वर 2016 - निष्पादन योजनाओं की तुलना करना

  3. FROM_UNIXTIME() उदाहरण - MySQL

  4. MySQL में किसी अन्य तालिका में मौजूद पंक्तियों को कैसे दिखाएं?

  5. मैं अपने एसक्यूएल में अंतिम पंक्ति के रूप में कुल कैसे जोड़ूं?