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

คืนค่าฟิลด์ที่ปรากฏจำนวนครั้งที่กำหนดด้วย MySQL DISTINCT

ภาพรวม

ใช้ DISTINCT ร่วมกับ COUNT(), GROUP BY และ HAVING เพื่อกรองเฉพาะค่าที่ปรากฏซ้ำตามเงื่อนไข

ไวยากรณ์

SELECT DISTINCT yourColumnName, COUNT(yourColumnName)
FROM yourTableName
WHERE yourColumnName LIKE 'J%'
GROUP BY yourColumnName
HAVING COUNT(*) > 1
ORDER BY yourColumnName;

ตัวอย่าง: สร้างตารางและข้อมูล

mysql> CREATE TABLE DemoTable1500 (
    -> Name VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.86 sec)

เพิ่มข้อมูล

INSERT INTO DemoTable1500 VALUES('Adam');
INSERT INTO DemoTable1500 VALUES('John');
INSERT INTO DemoTable1500 VALUES('Mike');
INSERT INTO DemoTable1500 VALUES('John');
INSERT INTO DemoTable1500 VALUES('Jace');
INSERT INTO DemoTable1500 VALUES('Jace');
INSERT INTO DemoTable1500 VALUES('Jackie');

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

SELECT * FROM DemoTable1500;

ผลลัพธ์

+--------+
| Name   |
+--------+
| Adam   |
| John   |
| Mike   |
| John   |
| Jace   |
| Jace   |
| Jackie |
+--------+
7 rows in set (0.00 sec)

คำสั่งกรองชื่อขึ้นต้น J และปรากฏมากกว่า 1 ครั้ง

SELECT DISTINCT Name, COUNT(Name)
FROM DemoTable1500
WHERE Name LIKE 'J%'
GROUP BY Name
HAVING COUNT(*) > 1
ORDER BY Name;

ผลลัพธ์

+------+-------------+
| Name | COUNT(Name) |
+------+-------------+
| Jace | 2           |
| John | 2           |
+------+-------------+
2 rows in set (0.00 sec)

สรุป

  • DISTINCT กับ COUNT ใน SELECT แสดงค่าและจำนวน
  • WHERE Name LIKE 'J%' กรองเฉพาะขึ้นต้น J
  • GROUP BY Name จัดกลุ่มตามชื่อ
  • HAVING COUNT(*) > 1 กรองกลุ่มที่มีมากกว่า 1 รายการ