การ SELECT ข้อมูลด้วย HAVING และ WHERE

SQL Knowledge ทั้ง sql มาตรฐาน หลักการออกแบบฐานข้อมูล ความสัมพันธ์ของ ตาราง Mysql , PGSQL, Oracle, MSSQL

Moderator: mindphp, ผู้ดูแลกระดาน

M013
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 829
ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm

การ SELECT ข้อมูลด้วย HAVING และ WHERE

โพสต์โดย M013 » 14/08/2013 11:44 am

การ SELECT ข้อมูลด้วย HAVING และ WHERE
การ SELECT ข้อมูลด้วย HAVING เป็นเหมือนการเพิ่มเงื่อนไขขึ้นมาจาก GROUP BY
(**สามารถอ่านข้อมูลเพิ่มเติมเกี่ยวกับ GROUP BY viewtopic.php?p=38883#p38883)

รูปแบบคำสั่ง HAVING

โค้ด: เลือกทั้งหมด

SELECT ชื่อคอลัมน์
FROM ชื่อตารางข้อมูล
GROUP BY ชื่อคอลัมน์
HAVING เงื่อนไข;
** จะเห็นได้ว่าเเตกต่างจาก GROUP BY เพียงเพิ่ม HAVING เข้ามา

ตัวอย่างการใช้งาน HAVING
select_product.jpg
ภาพที่ 1.1 ตารางข้อมูลการสั่งซื้อสินค้า
select_product.jpg (147.17 KiB) เปิดดู 4261 ครั้ง

>> ต้องทราบผลรวมของการสั่งซื้อสินค้า โดยแบ่งกลุ่มตามที่อยู่เพื่อดูยอดขายของเเต่ละจังหวัด ที่มียอดขายมากกว่า 1500 บาท

โค้ด: เลือกทั้งหมด

SELECT cus_address AS "Address", SUM(order_price) AS "Total"
FROM Order_product
ORDER BY cus_address
HAVING SUM(order_price) >= 1500;

การเเสดงผล
select_where_having_output.jpg
ภาพที่ 1.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_where_having_output.jpg (33.48 KiB) เปิดดู 4261 ครั้ง
_________________

รูปแบบคำสั่ง WHERE ร่วมกับ HAVING

โค้ด: เลือกทั้งหมด

SELECT ชื่อคอลัมน์
FROM ชื่อตารางข้อมูล
WHERE เงื่อนไข
GROUP BY ชื่อคอลัมน์
HAVING เงื่อนไข;

ตัวอย่างการใช้งาน WHERE ร่วมกับ HAVING
>> จากตัวอย่างการใช้งาน HAVING ต้องการทราบเฉพาะจังหวัดกรุงเทพ และ เชียงใหม่
(ดูตารางข้อมูลจาก ภาพที่ 1.1 ตารางข้อมูลการสั่งซื้อสินค้า)

โค้ด: เลือกทั้งหมด

SELECT cus_address AS "Address", SUM(order_price) AS "Total"
FROM Order_product
WHERE cus_address IN ('Bangkok', 'Chingmai')
ORDER BY cus_address
HAVING SUM(order_price) >= 1500;

การเเสดงผล
select_where_where_having_output.jpg
ภาพที่ 1.3 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_where_where_having_output.jpg (26.05 KiB) เปิดดู 4256 ครั้ง

N_T

Re: การ SELECT ข้อมูลด้วย HAVING และ WHERE

โพสต์โดย N_T » 16/08/2013 11:23 am

ทำให้รู้ว่ามี HAVING ด้วย ไม่เคยใช้เลย :lol:


ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 16 และ บุคคลทั่วไป 0 ท่าน