Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL นับจำนวนผู้ใช้แต่ละประเภท (ENUM) ด้วย GROUP BY

ใช้ COUNT(*) ร่วมกับ GROUP BY เพื่อนับจำนวนแถวข้อมูลในแต่ละกลุ่มของคอลัมน์ ENUM

ตัวอย่างการใช้งาน

1. สร้างตารางมีคอลัมน์ ENUM

mysql> CREATE TABLE DemoTable (
    UserName VARCHAR(20),
    UserType ENUM('New User','Registered User')
);
Query OK, 0 rows affected (0.60 sec)

2. เพิ่มข้อมูลทดสอบ

mysql> INSERT INTO DemoTable VALUES('Chris','New User');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable VALUES('David','New User');
Query OK, 1 row affected (0.09 sec)
mysql> INSERT INTO DemoTable VALUES('Mike','Registered User');
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO DemoTable VALUES('Sam','New User');
Query OK, 1 row affected (0.10 sec)

3. แสดงข้อมูลทั้งหมด

mysql> SELECT * FROM DemoTable;
+----------+-----------------+
| UserName | UserType        |
+----------+-----------------+
| Chris    | New User        |
| David    | New User        |
| Mike     | Registered User |
| Sam      | New User        |
+----------+-----------------+

4. คำสั่งนับจำนวนตามประเภทผู้ใช้

mysql> SELECT COUNT(*), UserType FROM DemoTable GROUP BY UserType;

5. ผลลัพธ์

+----------+-----------------+
| COUNT(*) | UserType        |
+----------+-----------------+
|        3 | New User        |
|        1 | Registered User |
+----------+-----------------+

ขยายความสามารถ

สามารถเพิ่มเงื่อนไขด้วย HAVING ได้ เช่น นับเฉพาะกลุ่มที่มีมากกว่า 1 คน:

mysql> SELECT COUNT(*), UserType 
    -> FROM DemoTable 
    -> GROUP BY UserType 
    -> HAVING COUNT(*) > 1;

สรุป

GROUP BY บนคอลัมน์ ENUM ทำงานได้อย่างสมบูรณ์ เนื่องจาก ENUM เก็บค่าเป็นดัชนีตัวเลขภายใน ทำให้การจัดกลุ่มและเรียงลำดับมีประสิทธิภาพสูง