Mysql
 sql >> Baza danych >  >> RDS >> Mysql

grupuj według zakresu w mysql

Oto ogólny kod do grupowania według zakresu, ponieważ wykonanie instrukcji case jest dość kłopotliwe.

Funkcji „podłoga” można użyć do znalezienia dolnej części zakresu (a nie „okrągłej”, jak używał Bohemian) i dodać kwotę (19 w poniższym przykładzie), aby znaleźć szczyt zakresu. Pamiętaj, aby nie nakładać się na dolną i górną część zakresu!

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. Konwersja formatu daty SQL? [dd.mm.rr do RRRR-MM-DD]

  2. Łączenie się ze zdalnym serwerem MySQL za pomocą PHP

  3. Potrzebujesz pomocy w zrozumieniu obiektów kolekcji produktów Magento oraz katalogu/modelu produktu

  4. MySQL dopasowujący znaki Unicode do wersji ascii

  5. Nie można zapisać daty w bazie danych w php