Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

หาค่าต่ำสุดและสูงสุดในคำสั่งเดียวด้วย UNION ใน MySQL

การดึงค่า 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) ตามที่โจทย์ต้องการ