คำสั่ง SQL HAVING
HAVING ใช้เมื่อมีการใช้ฟังก์ชัน ในคำสั่ง SQL เช่น SUM หรือ AVG เป็นต้น โดยเมื่อการกำหนดเงื่อนไข จึงจำเป็นต้องใช้ HAVING แทน WHERE เพื่อคงคุณสมบัติของฟังก์ชันไว้ คำสั่ง HAVING อาจจะมีคำสั่ง GROUP BY หรือไม่มีรวมอยู่ด้วยก็ได้
รูปแบบคำสั่ง
- SELECT "column_name1", SUM("column_name2") FROM "table_name"
- GROUP BY "column_name1" HAVING (arithmetic function condition)
ตาราง Store_Information
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999
การใช้งาน
- SELECT store_name, SUM(sales) FROM Store_Information GROUP BY store_name HAVING SUM(sale)> 1500
ผลลัพธ์ที่ได้
store_name SUM(Sales)
Los Angeles $1800
HAVING ใช้เมื่อมีการใช้ฟังก์ชัน ในคำสั่ง SQL เช่น SUM หรือ AVG เป็นต้น โดยเมื่อการกำหนดเงื่อนไข จึงจำเป็นต้องใช้ HAVING แทน WHERE เพื่อคงคุณสมบัติของฟังก์ชันไว้ คำสั่ง HAVING อาจจะมีคำสั่ง GROUP BY หรือไม่มีรวมอยู่ด้วยก็ได้
รูปแบบคำสั่ง
- SELECT "column_name1", SUM("column_name2") FROM "table_name"
- GROUP BY "column_name1" HAVING (arithmetic function condition)
ตาราง Store_Information
store_name | Sales | Date |
Los Angeles | $1500 | Jan-05-1999 |
San Diego | $250 | Jan-07-1999 |
Los Angeles | $300 | Jan-08-1999 |
Boston | $700 | Jan-08-1999 |
การใช้งาน
- SELECT store_name, SUM(sales) FROM Store_Information GROUP BY store_name HAVING SUM(sale)> 1500
ผลลัพธ์ที่ได้
store_name | SUM(Sales) |
Los Angeles | $1800 |
คำสั่ง SQL IN
- SELECT "column_name"
- FROM "table_name"
- WHERE "column_name" IN ('value1', 'value2', ...)
ตาราง Store_Information
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
San Francisco $300 Jan-08-1999
Boston $700 Jan-08-1999
การใช้งาน
- SELECT *
- FROM Store_Information
- WHERE store_name IN ('Los Angeles', 'San Diego')
ผลลัพธิ์ที่ได้
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
- SELECT "column_name"
- FROM "table_name"
- WHERE "column_name" IN ('value1', 'value2', ...)
ตาราง Store_Information
store_name | Sales | Date |
Los Angeles | $1500 | Jan-05-1999 |
San Diego | $250 | Jan-07-1999 |
San Francisco | $300 | Jan-08-1999 |
Boston | $700 | Jan-08-1999 |
การใช้งาน
- SELECT *
- FROM Store_Information
- WHERE store_name IN ('Los Angeles', 'San Diego')
ผลลัพธิ์ที่ได้
store_name | Sales | Date |
Los Angeles | $1500 | Jan-05-1999 |
San Diego | $250 | Jan-07-1999 |
คำสั่ง SQL BETWEEN
- SELECT "column_name"
- FROM "table_name"
- WHERE "column_name" BETWEEN 'value1' AND 'value2'
ตาราง Store_Information
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
San Francisco $300 Jan-08-1999
Boston $700 Jan-08-1999
การใช้งาน
- SELECT *
- FROM Store_Information
- WHERE Date BETWEEN 'Jan-06-1999' AND 'Jan-10-1999'
ผลลัพธิ์ที่ได้
store_name Sales Date
San Diego $250 Jan-07-1999
San Francisco $300 Jan-08-1999
Boston $700 Jan-08-1999
- SELECT "column_name"
- FROM "table_name"
- WHERE "column_name" BETWEEN 'value1' AND 'value2'
ตาราง Store_Information
store_name | Sales | Date |
Los Angeles | $1500 | Jan-05-1999 |
San Diego | $250 | Jan-07-1999 |
San Francisco | $300 | Jan-08-1999 |
Boston | $700 | Jan-08-1999 |
การใช้งาน
- SELECT *
- FROM Store_Information
- WHERE Date BETWEEN 'Jan-06-1999' AND 'Jan-10-1999'
ผลลัพธิ์ที่ได้
store_name | Sales | Date |
San Diego | $250 | Jan-07-1999 |
San Francisco | $300 | Jan-08-1999 |
Boston | $700 | Jan-08-1999 |
คำสั่ง SQL WHERE
- SELECT "column_name" FROM "table_name" WHERE "condition"
ตาราง Store_Information
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999
การใช้งาน
- SELECT store_name FROM Store_Information WHERE Sales > 1000
ผลลัพธิ์ที่ได้
store_name
Los Angeles
- SELECT "column_name" FROM "table_name" WHERE "condition"
ตาราง Store_Information
store_name | Sales | Date |
Los Angeles | $1500 | Jan-05-1999 |
San Diego | $250 | Jan-07-1999 |
Los Angeles | $300 | Jan-08-1999 |
Boston | $700 | Jan-08-1999 |
การใช้งาน
- SELECT store_name FROM Store_Information WHERE Sales > 1000
ผลลัพธิ์ที่ได้
store_name |
Los Angeles |
คำสั่ง SQL functions
คำสั่ง SQL มีฟังก์ชั่น (function) ที่ใช้จัดการเกี่ยวกับตัวเลข เช่น
การหาค่าผลรวม หรือ การหาค่าเฉลี่ย ตัวอย่างฟังก์ขัน
- AVG การหาค่าเฉลี่ย
- COUNT การนับจำนวน
- MAX การหาค่าสูงสุด
- MIN การหาค่าต่ำสุด
- SUM การผาผลรวม
รูปแบบคำสั่ง
- SELECT "function type"("column_name") FROM "table_name"
ตาราง Store_Information
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999
การใช้งาน
- SELECT SUM(Sales) FROM Store_Information
ผลลัพธ์ที่ได้
SUM(Sales)
$2750
คำอธิบาย
$2750 แสดงถึงผลรวมของรายการขาย เกิดจาก: $1500 + $250 + $300 + $700.
คำสั่ง SQL มีฟังก์ชั่น (function) ที่ใช้จัดการเกี่ยวกับตัวเลข เช่น
การหาค่าผลรวม หรือ การหาค่าเฉลี่ย ตัวอย่างฟังก์ขัน
การหาค่าผลรวม หรือ การหาค่าเฉลี่ย ตัวอย่างฟังก์ขัน
- AVG การหาค่าเฉลี่ย
- COUNT การนับจำนวน
- MAX การหาค่าสูงสุด
- MIN การหาค่าต่ำสุด
- SUM การผาผลรวม
- COUNT การนับจำนวน
- MAX การหาค่าสูงสุด
- MIN การหาค่าต่ำสุด
- SUM การผาผลรวม
รูปแบบคำสั่ง
- SELECT "function type"("column_name") FROM "table_name"
ตาราง Store_Information
store_name | Sales | Date |
Los Angeles | $1500 | Jan-05-1999 |
San Diego | $250 | Jan-07-1999 |
Los Angeles | $300 | Jan-08-1999 |
Boston | $700 | Jan-08-1999 |
การใช้งาน
- SELECT SUM(Sales) FROM Store_Information
ผลลัพธ์ที่ได้
SUM(Sales) |
คำอธิบาย
$2750 แสดงถึงผลรวมของรายการขาย เกิดจาก: $1500 + $250 + $300 + $700.
คำสั่ง SQL ORDER BY
- SELECT "column_name"
- FROM "table_name"
- [WHERE "condition"]
- ORDER BY "column_name" [ASC, DESC]
ASC และ DESC คือรูปแบบการเรียงลำดับ
- ASC เรียงจากน้อยไปหามาก
- ASC เรียงจากมากไปหาน้อย
นอกจากนี้ยังสามารถกำหนด การจัดเรียงได้มากกว่า 1 คอลัมน์ ดังต่อไปนี้
- ORDER BY "column_name1" [ASC, DESC], "column_name2" [ASC, DESC]
ตาราง Store_Information
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
San Francisco $300 Jan-08-1999
Boston $700 Jan-08-1999
การใช้งาน
ผลลัพธิ์ที่ได้
store_name Sales Date
Los Angeles $1500 Jan-05-1999
Boston $700 Jan-08-1999
San Diego $250 Jan-07-1999
San Francisco $300 Jan-08-1999
- SELECT "column_name"
- FROM "table_name"
- [WHERE "condition"]
- ORDER BY "column_name" [ASC, DESC]
ASC และ DESC คือรูปแบบการเรียงลำดับ
- ASC เรียงจากน้อยไปหามาก
- ASC เรียงจากมากไปหาน้อย
- ORDER BY "column_name1" [ASC, DESC], "column_name2" [ASC, DESC]
ตาราง Store_Information
store_name | Sales | Date |
Los Angeles | $1500 | Jan-05-1999 |
San Diego | $250 | Jan-07-1999 |
San Francisco | $300 | Jan-08-1999 |
Boston | $700 | Jan-08-1999 |
การใช้งาน
ผลลัพธิ์ที่ได้
store_name | Sales | Date |
Los Angeles | $1500 | Jan-05-1999 |
Boston | $700 | Jan-08-1999 |
San Diego | $250 | Jan-07-1999 |
San Francisco | $300 | Jan-08-1999 |
คำสั่ง SQL GROUP BY
GROUP BY ใช้เมื่อเราต้องการเลือกคอลัมน์หลายๆ คอลัมน์จากตาราง และมีฟังก์ชันทางคณิตศาสตร์ อย่างน้อยหนึ่งคำสั่งอยู่ในคำสั่ง SQL เพื่อมาทำการจัดกลุ่มตามคอลัมน์ที่เลือก ยกเว้นคอลัมน์ที่มีฟังก์ชันทางคณิตาศารต์อยู่
รูปแบบคำสั่ง
- SELECT "column_name1", SUM("column_name2") FROM "table_name" GROUP BY "column_name1"
ตาราง Store_Information
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999
การใช้งาน
- SELECT store_name, SUM(Sales) FROM Store_Information GROUP BY store_name
ผลลัพธ์ที่ได้
store_name SUM(Sales)
Los Angeles $1800
San Diego $250
Boston $700
GROUP BY ใช้เมื่อเราต้องการเลือกคอลัมน์หลายๆ คอลัมน์จากตาราง และมีฟังก์ชันทางคณิตศาสตร์ อย่างน้อยหนึ่งคำสั่งอยู่ในคำสั่ง SQL เพื่อมาทำการจัดกลุ่มตามคอลัมน์ที่เลือก ยกเว้นคอลัมน์ที่มีฟังก์ชันทางคณิตาศารต์อยู่
รูปแบบคำสั่ง
- SELECT "column_name1", SUM("column_name2") FROM "table_name" GROUP BY "column_name1"
ตาราง Store_Information
store_name | Sales | Date |
Los Angeles | $1500 | Jan-05-1999 |
San Diego | $250 | Jan-07-1999 |
Los Angeles | $300 | Jan-08-1999 |
Boston | $700 | Jan-08-1999 |
การใช้งาน
- SELECT store_name, SUM(Sales) FROM Store_Information GROUP BY store_name
ผลลัพธ์ที่ได้
store_name | SUM(Sales) |
Los Angeles | $1800 |
San Diego | $250 |
Boston | $700 |
คำสั่ง SQL COUNT
ฟังก์ชัน COUNT เป็นฟังก์ชันทางคณิตศาสตร์หนึ่งที่ใช้ในหาจำนวนแถว
ที่มีอยู่ในตาราง
รูปแบบคำสั่ง
- SELECT COUNT("column_name") FROM "table_name"
ตาราง Store_Information
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999
การใช้งาน
- SELECT COUNT(store_name) FROM Store_Information
ผลลัพธ์ที่ได้
Count(store_name)
4
ฟังก์ชัน COUNT และ DISTINCT สามารถที่จะใช้ร่วมกันในคำสั่ง SQL
เพื่อให้ได้จำนวนรายการข้อมูลที่แตกต่างกัน ตัวอย่าง ถ้าเราต้องการหาจำนวน
ของร้านค้าที่ไม่ซ้ำกันในตาราง
การใช้งาน
- SELECT COUNT(DISTINCT store_name) FROM Store_Information
ผลลัพธ์ที่ได้
Count(DISTINCT store_name)
3
ฟังก์ชัน COUNT เป็นฟังก์ชันทางคณิตศาสตร์หนึ่งที่ใช้ในหาจำนวนแถว
ที่มีอยู่ในตาราง
รูปแบบคำสั่ง
ที่มีอยู่ในตาราง
รูปแบบคำสั่ง
- SELECT COUNT("column_name") FROM "table_name"
ตาราง Store_Information
store_name | Sales | Date |
Los Angeles | $1500 | Jan-05-1999 |
San Diego | $250 | Jan-07-1999 |
Los Angeles | $300 | Jan-08-1999 |
Boston | $700 | Jan-08-1999 |
การใช้งาน
- SELECT COUNT(store_name) FROM Store_Information
ผลลัพธ์ที่ได้
Count(store_name) |
ฟังก์ชัน COUNT และ DISTINCT สามารถที่จะใช้ร่วมกันในคำสั่ง SQL
เพื่อให้ได้จำนวนรายการข้อมูลที่แตกต่างกัน ตัวอย่าง ถ้าเราต้องการหาจำนวน
ของร้านค้าที่ไม่ซ้ำกันในตาราง
เพื่อให้ได้จำนวนรายการข้อมูลที่แตกต่างกัน ตัวอย่าง ถ้าเราต้องการหาจำนวน
ของร้านค้าที่ไม่ซ้ำกันในตาราง
การใช้งาน
- SELECT COUNT(DISTINCT store_name) FROM Store_Information
ผลลัพธ์ที่ได้
Count(DISTINCT store_name) |
คำสั่ง SQL SELECT
- SELECT "column_name" FROM "table_name"
ตาราง Store_Information
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999
ตัวอย่างคำสั่ง
- SELECT store_name FROM Store_Information
ผลลัพธิ์ที่ได้
store_name
Los Angeles
San Diego
Los Angeles
Boston
เราสามารถเลือกหลายคอลัมน์ หรือหลายตารางได้
ตัวอย่างการเลือกทุกคอลัมน์ในตาราง
- SELECT * FROM "table_name"
- SELECT "column_name" FROM "table_name"
ตาราง Store_Information
store_name | Sales | Date |
Los Angeles | $1500 | Jan-05-1999 |
San Diego | $250 | Jan-07-1999 |
Los Angeles | $300 | Jan-08-1999 |
Boston | $700 | Jan-08-1999 |
- SELECT store_name FROM Store_Information
ผลลัพธิ์ที่ได้
store_name |
Los Angeles |
San Diego |
Los Angeles |
Boston |
เราสามารถเลือกหลายคอลัมน์ หรือหลายตารางได้
ตัวอย่างการเลือกทุกคอลัมน์ในตาราง
- SELECT * FROM "table_name"