Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

SELECT / GROUP BY - urutan nilai

Versi yang sedikit rumit karena kurangnya fungsi analitik di MySQL; Saya berasumsi itu adalah SUM dari val1 kamu butuh;

SELECT SUM(val1) val1, MAX(val2) val2
FROM (
  SELECT s1.val1, COUNT(s3.val1) grouping, s1.val2 val2
  FROM sequence s1
  LEFT JOIN sequence s2 ON s1.val1 >= s2.val1
  LEFT JOIN sequence s3 ON s3.val1 = s2.val1 - 1 AND s2.val2 <> s3.val2
  GROUP BY s1.val1
) a
GROUP BY grouping
ORDER BY grouping

Sebuah SQLfiddle untuk diuji .

Jika Anda menambahkan grouping ke daftar pilihan untuk membuat urutannya jelas, Anda mendapatkan

val1    val2    grouping
15      1       0
40      2       1
65      1       2


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dimana meja yang menyimpan Harga Spesial di Magento?

  2. Hitung dan tampilkan berapa banyak hasil kolom tertentu

  3. Menyimpan Beberapa Data Kotak Centang di Database MySQL dengan PHP

  4. cara mendapatkan ukuran tabel mysql dalam GB

  5. Skrip Ajax Jquery sederhana- Bagaimana saya bisa mendapatkan informasi untuk setiap baris dalam tabel?