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

कॉलम द्वारा समूहीकृत क्वेरी परिणामों के लिए पंक्ति संख्या

यह बहुत सीधा होना चाहिए।

SELECT (CASE WHEN @fk <> fk_id THEN @row:=1 ELSE @row:[email protected] + 1 END) AS ordinality, 
       @fk:=fk_id, rcv_date
FROM   (SELECT @row:=0) AS r, 
       (SELECT @fk:=0) AS f, 
       (SELECT fk_id, rcv_date FROM files ORDER BY fk_id, rcv_date) AS t

मैंने fk_id . द्वारा आदेश दिया सबसे पहले यह सुनिश्चित करने के लिए कि आपकी सभी विदेशी कुंजियाँ एक साथ आएँ (क्या होगा यदि वे वास्तव में तालिका में नहीं हैं?), तो मैंने आपका पसंदीदा आदेश दिया, अर्थात rcv_date द्वारा . क्वेरी fk_id में परिवर्तन की जांच करती है और यदि कोई है, तो पंक्ति संख्या चर 1 पर सेट है, अन्यथा चर बढ़ा हुआ है। केस स्टेटमेंट में इसका संचालन किया जाता है। ध्यान दें कि @fk:=fk_id केस की जाँच के बाद किया जाता है अन्यथा यह पंक्ति संख्या को प्रभावित करेगा।

संपादित करें: बस अपना खुद का समाधान देखा जो वही हुआ जैसा मैंने समाप्त किया था। प्रशंसा! :)


  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 अभी () समय क्षेत्र बदलें

  3. SQL क्वेरी प्रदर्शन प्रश्न (एकाधिक उप-प्रश्न)

  4. django . में टाइमस्टैम्प फ़ील्ड

  5. मुझे MySQL में एक फ़ील्ड को auto_increment करने की आवश्यकता है जो प्राथमिक कुंजी नहीं है