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

2 . द्वारा समूह में रहते हुए क्षेत्र की घटना की गणना करें

आपकी क्वेरी आपके नमूना डेटा से संबंधित नहीं है; हालांकि ऐसा लगता है कि आप एकत्रीकरण और रैंकिंग चाहते हैं। MySQL 8.0 में, आप यह करेंगे:

select
    row_number() over(order by count(*) desc) rn,
    order_id,
    count(*) items_in_order
from data
group by order_id
order by rn

मैंने पहले कॉलम का नाम rn . रखा है (रैंक . के लिए ):मुझे id मिल रहा है यहाँ भ्रमित है, क्योंकि आपके पास पहले से ही तालिका में उस नाम का एक कॉलम है।

पुराने संस्करणों में, एक विकल्प row_number() . के बजाय सत्र चर का उपयोग करता है :

select @rn := @rn + 1 rn, order_id, items_in_order
from (
    select order_id, count(*) items_in_order
    from data
    group by order_id
    order by items_in_order desc
) t
cross join (select @rn := 0) r
order by items_in_order 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. क्वेरी द्वारा ऑर्डर अनुकूलित करें

  2. मैं MySQL को पुनरारंभ किए बिना MySQL की धीमी क्वेरी लॉग को कैसे सक्षम कर सकता हूं?

  3. बाईं ओर योग SQL में शामिल हों

  4. क्या दूसरी क्वेरी जोड़कर वास्तव में SQL इंजेक्शन संभव है?

  5. मैं विंडोज़ फॉर्म से MySQL से कैसे जुड़ सकता हूँ?