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

SQL में निरंतर पंक्तियों के लिए GROUP BY

SELECT  MIN(id) AS id, MIN(ts) AS ts, MIN(state) AS state, COUNT(*) cnt
FROM    (
        SELECT  @r := @r + (@state != state) AS gn,
                @state := state AS sn,
                s.*
        FROM    (
                SELECT  @r := 0,
                        @state := 0
                ) vars,
                t_state s
        ORDER BY
                ts
        ) q
GROUP BY
        gn

परीक्षण के लिए तालिका निर्माण स्क्रिप्ट:

CREATE TABLE t_state (id INT NOT NULL PRIMARY KEY, state INT NOT NULL, ts DATETIME NOT NULL);

INSERT
INTO  t_state
VALUES
(12,   1,      '2009-07-16 10:00'),
(45,   2,      '2009-07-16 13:00'),
(67,   2,      '2009-07-16 14:40'),
(77,   1,      '2009-07-16 15:00'),
(89,   1,      '2009-07-16 15:30'),
(99,   1,      '2009-07-16 16:00');


  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 कर्सर.एक्सक्यूट (एसक्यूएल) काम करता है?

  2. MyISAM InnoDB की तुलना में कितना तेज़ है?

  3. जब मैं mysqli_query में एकाधिक प्रश्न भेजता हूं तो त्रुटि क्यों होती है?

  4. क्या एक MySQL क्वेरी पंक्तियों को कॉलम में बदल सकती है?

  5. मैं सहेजे गए स्थानीय स्टोरेज वेब डेटा को PHP स्क्रिप्ट में कैसे पास कर सकता हूं?