Computer >> Máy Tính >  >> Lập trình >> MySQL

Truy vấn MySQL để nhận số lượng các giá trị và hiển thị số lượng trong một cột mới được sắp xếp theo thứ tự giảm dần

Sử dụng ORDER BY với DESC để sắp xếp theo thứ tự giảm dần. Để đếm các giá trị, hãy sử dụng COUNT (). Ví dụ:nếu tên “John” xuất hiện ba lần trong cột, thì một cột riêng biệt sẽ hiển thị số đếm 3 và theo cách này, tất cả các giá trị số đếm sẽ được sắp xếp theo thứ tự giảm dần bằng cách sử dụng ORDER BY DESC.

Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
   -> (
   -> EmployeeName varchar(100)
   -> );
Query OK, 0 rows affected (0.85 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable values('Sam');
Query OK, 1 row affected (0.17 sec)

mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.31 sec)

mysql> insert into DemoTable values('Chris');
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable values('Robert');
Query OK, 1 row affected (0.11 sec)

mysql> insert into DemoTable values('Chris');
Query OK, 1 row affected (0.12 sec)

mysql> insert into DemoTable values('Sam');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable values('Sam');
Query OK, 1 row affected (0.10 sec)

mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.11 sec)

mysql> insert into DemoTable values('Robert');
Query OK, 1 row affected (0.18 sec)

mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.16 sec)

mysql> insert into DemoTable values('Chris');
Query OK, 1 row affected (0.14 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

Đầu ra

+--------------+
| EmployeeName |
+--------------+
| Sam          |
| David        |
| David        |
| Chris        |
| Robert       |
| Chris        |
| Sam          |
| Sam          |
| David        |
| Robert       |
| David        |
| Chris        |
+--------------+
12 rows in set (0.00 sec)

Sau đây là truy vấn để lấy số lượng các giá trị và hiển thị số lượng trong một cột mới được sắp xếp theo thứ tự giảm dần -

mysql> select EmployeeName,count(EmployeeName) as Total from DemoTable
   -> group by EmployeeName
   -> order by Total DESC;

Đầu ra

+--------------+-------+
| EmployeeName | Total |
+--------------+-------+
| David        | 4     |
| Chris        | 3     |
| Sam          | 3     |
| Robert       | 2     |
+--------------+-------+
4 rows in set (0.00 sec)