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

kelompokkan berdasarkan rentang di mysql

Berikut adalah kode umum untuk mengelompokkan berdasarkan rentang karena melakukan pernyataan kasus menjadi sangat rumit.

Fungsi 'lantai' dapat digunakan untuk menemukan bagian bawah rentang (bukan 'bulat' seperti yang digunakan Bohemian), dan tambahkan jumlahnya (19 pada contoh di bawah) untuk menemukan bagian atas rentang. Ingatlah untuk tidak tumpang tindih bagian bawah dan atas rentang!

mysql> create table new_table (user_number int, diff int);
Query OK, 0 rows affected (0.14 sec)

mysql>  insert into new_table values (2, 0), (1, 28), (2, 32), (1, 40), (1, 53),
        (1, 59), (1, 101), (1, 105), (2, 108), (2, 129), (2, 130), (1, 144);
Query OK, 12 rows affected (0.01 sec)
Records: 12  Duplicates: 0  Warnings: 0

mysql> select concat(21*floor(diff/21), '-', 21*floor(diff/21) + 20) as `range`,
       count(*) as `number of users` from new_table group by 1 order by diff;
+---------+-----------------+
| range   | number of users |
+---------+-----------------+
| 0-20    |               1 |
| 21-41   |               3 |
| 42-62   |               2 |
| 84-104  |               1 |
| 105-125 |               2 |
| 126-146 |               3 |
+---------+-----------------+
6 rows in set (0.01 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Koneksi jarak jauh MYSQL memerlukan SSL

  2. Bagaimana cara memilih pasangan yang berbeda di MySQL bergabung (tabel yang sama) dengan transitivitas?

  3. Script PHP untuk Backup Database MySQL

  4. MySQL dan JSON - ubah array menjadi baris

  5. kueri pembaruan mysql dengan sub kueri