ฟังก์ชั่น COUNT() ใช้สำหรับนับจำนวนแถวในตาราง.
SQL COUNT(column_name) Syntax
ฟังก์ชั่น COUNT(column_name) จะคืนค่าจำนวนแถวของฟิลด์ที่ระบุ ( จะไม่นับฟิล์ด์ที่เก็บค่า NULL ไว้ ) :
SELECT COUNT(column_name) FROM TABLE_NAME |
SQL COUNT(*) Syntax
ฟังก์ชั่น COUNT(*) จะคืนค่าจำนวนแถวทั้งหมดที่มีอยู่ในตาราง :
SELECT COUNT(*) FROM TABLE_NAME |
ผมเพิ่งมาทราบเอาตอนเขียนบทความนี้ให้ท่านอ่านนี่แหละ ว่าสองอย่างนี้มันต่างกัน ต่างกันตรงที่ COUNT(column_name) มันไม่นับเอาตัวที่เก็บค่า NULL เข้าไปด้วย เมื่อก่อนผมยังคิดว่ามันเหมือนกันทุกประการ
ตัวอย่างการใช้งาน COUNT(column_name)
ถ้าสมมติว่าเรามีตาราง “Orders” :
O_Id | OrderDate | OrderPrice | Customer |
---|---|---|---|
1 | 2008/11/12 | 1000 | Hansen |
2 | 2008/10/23 | 1600 | Nilsen |
3 | 2008/09/02 | 700 | Hansen |
4 | 2008/09/03 | 300 | Hansen |
5 | 2008/08/30 | 2000 | Jensen |
6 | 2008/10/04 | 100 | Nilsen |
และเราต้องการนับว่า ใบสั่งซื้อจากนาย “Nilsen” มีกี่รายการ.
เราสามารถใช้คำสั่งดังนี้ :
SELECT COUNT(Customer) AS CustomerNilsen FROM Orders WHERE Customer='Nilsen' |
ผลลัพธ์จากคำสั่งด้านบน จะเท่ากับ 2 เพราะนาย “Nilsen” มีรายการแค่ 2 รายการ :
CustomerNilsen |
---|
2 |
ตัวอย่างการใช้งาน SQL COUNT(*)
ถ้าเราไม่ได้ใช้ WHERE ประกอบในคำสั่ง :
SELECT COUNT(*) AS NumberOfOrders FROM Orders |
ผลลัพธ์ที่ได้ก็จะเป็นดังนี้ :
NumberOfOrders |
---|
6 |
ซึ่งก็คือจำนวนแถวทั้งหมด ที่มีอยู่ในตาราง .
jj says:
20/04/2554 at 20/04/2554
สงสัยว่า ถ้าอยากรู้ของแต่ละคน count ยังไงค่ะ
ให้ผลลัพธ์เป็น hansen 3 nilsen 2 jasen 1 ค่ะ
ตอบทาง email ได้จะขอบคุณมากค่ะ
administrator says:
20/04/2554 at 20/04/2554
SELECT Customer , COUNT(Customer) AS total FROM Orders
GROUP BY Customer
ใช้คำสั่ง GROUP BY เอาครับ
สำหรับใครที่อยากได้การแจ้งเตือนเมื่อผมมาตอบคอมเม้นท์ ให้ติ๊กถูกที่ “เมื่อมีคอมเม้นท์ใหม่ในบทความนี้ ส่งให้ฉันทางอีเมล์ ด้วย” มันจะส่งคอมเม้นท์ใหม่ๆไปให้อัตโนมัติทางอีเมล์ (เฉพาะคอมเม้นท์ในบทความที่ได้ติ๊กถูกไว้เท่านั้น)
Thecs says:
10/01/2555 at 10/01/2555
ถ้าจะเอาผลของการค้นหามาใส่ในตัวแปร จะต้องเขียน Code Sql ยังไงอ่าครับ ???