การนับจำนวนครั้งที่ค่าเฉพาะปรากฏในคอลัมน์
ใช้ COUNT(*) ร่วมกับเงื่อนไข WHERE column = 'value' เพื่อนับเฉพาะแถวที่มีค่าตรงกับที่ต้องการ
Syntax
SELECT COUNT(*) FROM table_name WHERE column_name = 'specific_value';
ตัวอย่างการใช้งาน
สร้างตารางและเพิ่มข้อมูล (มีชื่อ 'Chris' ซ้ำ 4 ครั้ง):
mysql> CREATE TABLE DemoTable (Id INT, Name VARCHAR(100));
Query OK, 0 rows affected (1.40 sec)
mysql> INSERT INTO DemoTable VALUES
(100, 'John'), (101, 'Chris'), (102, 'Chris'), (103, 'Chris'),
(104, 'David'), (105, 'Chris'), (106, 'Carol'), (107, 'Bob');
Query OK, 8 rows affected
ข้อมูลทั้งหมด:
mysql> SELECT * FROM DemoTable;
+------+-------+ | Id | Name | +------+-------+ | 100 | John | | 101 | Chris | | 102 | Chris | | 103 | Chris | | 104 | David | | 105 | Chris | | 106 | Carol | | 107 | Bob | +------+-------+ 8 rows in set (0.00 sec)
นับจำนวน 'Chris':
mysql> SELECT COUNT(*) FROM DemoTable WHERE Name = 'Chris';
+----------+ | count(*) | +----------+ | 4 | +----------+ 1 row in set (0.00 sec)
การขยาย: นับทุกค่าพร้อมกัน (Group By)
SELECT Name, COUNT(*) AS cnt FROM DemoTable GROUP BY Name ORDER BY cnt DESC;
+-------+-----+ | Name | cnt | +-------+-----+ | Chris | 4 | | John | 1 | | David | 1 | | Carol | 1 | | Bob | 1 | +-------+-----+
เคล็ดลับ
- ใช้ Index บนคอลัมน์ที่ถูก WHERE เพื่อความเร็ว
COUNT(*)นับแถวทั้งหมด,COUNT(column)นับเฉพาะค่าที่ไม่ใช่ NULL- สำหรับนับ Distinct:
COUNT(DISTINCT column)