การดึงค่า MIN และ MAX พร้อมกันด้วย UNION
เพื่อแสดงค่าต่ำสุดและสูงสุดในคอลัมน์เดียวกันในชุดผลลัพธ์เดียว เราสามารถใช้ UNION รวมคำสั่ง SELECT สองคำสั่งที่ใช้ MIN() และ MAX() แยกกัน
สร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable (Price INT);
Query OK, 0 rows affected (0.57 sec)
mysql> INSERT INTO DemoTable VALUES(88);
mysql> INSERT INTO DemoTable VALUES(100);
mysql> INSERT INTO DemoTable VALUES(98);
mysql> INSERT INTO DemoTable VALUES(120);
แสดงข้อมูลทั้งหมด
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+-------+
| Price |
+-------+
| 88 |
| 100 |
| 98 |
| 120 |
+-------+
4 rows in set (0.00 sec)
คำสั่งหา MIN และ MAX พร้อมกัน
mysql> SELECT Price FROM DemoTable WHERE Price = (SELECT MIN(Price) FROM DemoTable)
UNION
SELECT Price FROM DemoTable WHERE Price = (SELECT MAX(Price) FROM DemoTable);
ผลลัพธ์:
+-------+
| Price |
+-------+
| 88 |
| 120 |
+-------+
2 rows in set (0.00 sec)
คำอธิบาย
- คำสั่งแรกหาค่าต่ำสุด (88) คำสั่งที่สองหาค่าสูงสุด (120)
UNIONรวมผลลัพธ์และกำจัดแถวซ้ำ (ถ้ามี)- วิธีอื่น: ใช้
SELECT MIN(Price), MAX(Price) FROM DemoTableจะได้ผลลัพธ์ในแถวเดียว 2 คอลัมน์ - แต่ตัวอย่างนี้แสดงผลในคอลัมน์เดียวกัน (Price) ตามที่โจทย์ต้องการ