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

MySQL หลาย COUNT พร้อมหลายคอลัมน์?


คุณสามารถใช้ฟังก์ชันการรวม SUM() ร่วมกับ IF() ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable( FirstName varchar(100), LastName varchar(100));Query OK, 0 แถวได้รับผลกระทบ (2.80 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable ('Adam', 'Smith'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.25 วินาที) mysql> แทรกลงในค่า DemoTable ('John', 'Smith'); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.36 วินาที) mysql> แทรกลงในค่า DemoTable ('John', 'Doe'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (1.38 วินาที) mysql> แทรกลงในค่า DemoTable ('Bob', 'Doe'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า DemoTable ('Sam', 'Smith'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.25 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------+----------+| ชื่อจริง | นามสกุล |+-----------+----------+| อดัม | สมิธ || จอห์น | สมิธ || จอห์น | โด || บ๊อบ | โด || แซม | Smith |+-----------+----------+5 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามสำหรับ MySQL หลาย COUNT ที่มีหลายคอลัมน์

mysql> เลือก sum(if(FirstName='John',1,0)) เป็น John_Count,sum(if(LastName='Smith',1,0)) เป็น Smith_Count จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------+-------------+| John_Count | Smith_Count |+-----------+-------------+| 2 | 3 |+------------+-------------+1 แถวในชุด (0.00 วินาที)