สอบถาม การใช้คำสั่ง count sql ครับ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถาม การใช้คำสั่ง count sql ครับ

สอบถาม การใช้คำสั่ง count sql ครับ
ตารางข้อมูล Order
+-----------------+----------------------+
|     OrderID     |     CustomerID    |
+-----------------+----------------------+
|   10265          |     7                       |
+-----------------+----------------------+
|   10266          |     7                       |
+-----------------+----------------------+
|   10267          |     27                     |
+-----------------+----------------------+
|   10268          |     27                     |
+-----------------+----------------------+
|   10269          |      1                      |
+-----------------+----------------------+

ผมจะทำการนับ CustomerID ว่าแต่ละ ID ว่ามีเท่าไร ในการ query ครั้งเดียวยังไงครับ 
ผมใช้เป็น แค่  SELECT COUNT(CustomerIDFROM Order WHERE = 7; 
แต่ก็จะนับได้ แค่ ID 7  ผมอยากให้ นับ ID 27  กับ 1  ด้วย ในครั้งเดียวเลยทำยังไงครับ


Wowowow 03-09-2014 18:02:46

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
ไม่ค่อยชัวร์ในคำถาม 

ถ้านับพร้อมกันแบบแสดง แยก ลองใช้เป็น

SELECT COUNT(OrderID) FROM Order GROUP BY CustomerID


ninenik 03-09-2014
 ความคิดเห็นที่ 2
ขอบคุณครับ


wowowow 03-09-2014 20:45
 ความคิดเห็นที่ 3
ขอถามอีกรอบ ครับ คือ จากตารางที่ผมตกตัวอย่างนะครับ ผมต้องการรู้ว่า
ใน ตาราง order  จะนับ CustomerID   ของแต่ละ  ID นะครับ แล้ว
ปกติผมจะเขียนแบบนี้ครับ

<?php

$strSQL = " SELECT COUNT(OrderID) AS CounterID1 FROM Order WHERE CustomerID = 1 ";
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery);
$strCounterID1 = $objResult["CounterID1 "];

$strSQL = " SELECT COUNT(OrderID) AS CounterID1 FROM Order WHERE CustomerID = 2 ";
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery);
$strCounterID2 = $objResult["CounterID2 "];

$strSQL = " SELECT COUNT(OrderID) AS CounterID1 FROM Order WHERE CustomerID = 3 ";
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery);
$strCounterID3 = $objResult["CounterID3 "];

?>

<table>
     <thead>
           <tr>
              <th colspan="2"><div align="center"><h3>สถิติ</h3></div></th>
          </tr>
     </thead>
     <tbody>
          <tr>
               <td width="98">ID1</td>
               <td width="75"><div align="center"><?php echo number_format($strCounterID1,0);?></div></td>
          </tr>
          <tr>
               <td>ID2</td>
               <td><div align="center"><?php echo number_format($strCounterID2,0);?></div></td>
          </tr>
          <tr>
              <td>ID3 </td>
              <td><div align="center"><?php echo number_format($strCounterID3,0);?></div></td>
          </tr>
                       
     </tbody>
</table>

  ผมจะต้องเขียนยังไงครับ โดยอยากจะ อยากคิวรี่ ครั้งเดียวนะครับ หรือน้อยครั้งที่สุดนะครับ
 โดยในตาราง จะแสดง   CustomerID ทั้งหมด
ถ้าเป็นวิธีที่ผมทำ ถ้ามี CustomerID  20  ผม ก็ต้อง คิวรี่ 20 ครั้งนะครับ
พี่ช่วยแนะนำหน่อยครับ


wowowow 03-09-2014 21:17
 ความคิดเห็นที่ 4
แก้ไขครับ ไม่ทันดู เขียนผิด

$strSQL = " SELECT COUNT(CustomerID) AS CounterID1 FROM Order WHERE CustomerID = 1 ";  




wowowow 03-09-2014 21:20
 ความคิดเห็นที่ 5
โค้ดที่ให้ไปตอนแรก น่าจะถูกแล้วไม่ใช่ฤา....

คำสั่ง COUNT(ฟิลด์ไหน ก็มีค่าเท่ากัน)  เพราะเป็นการดูจำนวน แถว ของ ตาราง FROM order ตามเงื่อนไขที่กำหนด

SELECT COUNT(OrderID) AS CounterID1 FROM Order WHERE CustomerID = 1

=


SELECT COUNT(CustomerID) AS CounterID1 FROM Order WHERE CustomerID = 1


ส่วนคำสั่ง GROUP BY ที่แนะนำไป ไม่แน่ใจว่าลอง run ดูรึยัง มันก็คือการจัดกลุม การนับ 
GROUP BY CustomerID  ก็คือ จัดกลุ่ม จาก CustomerID

ถ้าเอาคำสั่งนี้ไปวนลูปแสดงข้อมูล 

SELECT COUNT(CustomerID) AS CounterID1,CustomerID FROM Order GROUP BY CustomerID


อิงจากข้อมูลด้านบน

+-----------------+----------------------+
|    CounterID     |     CustomerID    |
+-----------------+----------------------+
|            2         |     7                       |
+-----------------+----------------------+
|            2         |     27                    |
+-----------------+----------------------+
|           1          |     1                     |
+-----------------+----------------------+


ninenik 04-09-2014
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ