ฉันมีตาราง SQL ชื่อ "posts" ที่มีลักษณะดังนี้:
id | category
-----------------------
1 | 3
2 | 1
3 | 4
4 | 2
5 | 1
6 | 1
7 | 2
หมายเลขหมวดหมู่แต่ละรายการสอดคล้องกับหมวดหมู่ ฉันจะนับจำนวนครั้งที่แต่ละหมวดหมู่ปรากฏในโพสต์ทั้งหมดในแบบสอบถาม SQL หนึ่งรายการได้อย่างไร
เป็นตัวอย่างแบบสอบถามดังกล่าวอาจส่งกลับอาร์เรย์สัญลักษณ์เช่นนี้ (1:3, 2:2, 3:1, 4:1)
วิธีการปัจจุบันของฉันคือการใช้แบบสอบถามสำหรับแต่ละประเภทที่เป็นไปได้เช่น: SELECT COUNT(*) AS num FROM posts WHERE category=#
แล้วรวมค่าส่งคืนลงในอาร์เรย์สุดท้าย อย่างไรก็ตามฉันกำลังมองหาโซลูชันที่ใช้แบบสอบถามเพียงรายการเดียว
3
ซ้ำซ้อนที่เป็นไปได้ของMySQL: นับการเกิดขึ้นของค่าที่แตกต่าง
—
Oleg V. Volkov