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

MySQL में तीन के पैक में पंक्तियां कैसे दिखाएं

यदि आप MySQL 8.0 चला रहे हैं, तो इस पर विचार करें:

SELECT *
FROM mytable
ORDER BY 
    FLOOR((ROW_NUMBER() OVER(PARTITION BY type ORDER BY timestamp) - 1)/3),
    type, 
    timestamp

DB Fiddle पर डेमो :

| id  | type | timestamp |
| --- | ---- | --------- |
| 1   | A    | 101       |
| 2   | A    | 102       |
| 5   | A    | 105       |
| 3   | B    | 103       |
| 4   | B    | 104       |
| 6   | B    | 106       |
| 7   | A    | 107       |
| 8   | A    | 108       |
| 10  | A    | 110       |
| 9   | B    | 109       |
| 11  | B    | 111       |
| 12  | B    | 112       |

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

SELECT id, type, timestamp
FROM (
    SELECT 
        t.*, 
        @rn := CASE WHEN @type = type THEN @rn + 1 ELSE 1 END rn,
        @type := type
    FROM 
        mytable t
        CROSS JOIN (SELECT @type := NULL, @rn := 1) x
    ORDER BY type, timestamp
) x
ORDER BY 
    FLOOR((rn - 1)/3),
    type, 
    timestamp;

DB Fiddle पर डेमो




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CSV फ़ाइल को MySQL तालिका में कैसे आयात करें

  2. PHP - SQL क्वेरी के आसपास सिंगल कोट्स या डबल कोट्स?

  3. PHP और MySQL का उपयोग करके वर्तमान समय को स्टोर करने का अनुशंसित तरीका क्या है?

  4. MySQL में उपयोगकर्ता सेट चर की तुलना कैसे करें?

  5. व्युत्पन्न तालिकाओं के कारण इकाई की रूपरेखा धीमी है