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

หา Min/Max จากส่วนของตารางใน MySQL

SELECT MIN/MAX จากช่วงข้อมูล (Subset) ด้วย LIMIT ใน Subquery

ใช้ Subquery พร้อม LIMIT จำกัดช่วง แล้วหา MIN/MAX

ไวยากรณ์

SELECT MIN(col) AS min_val, MAX(col) AS max_val
FROM (SELECT col FROM table LIMIT n) AS subquery;

ตัวอย่าง

CREATE TABLE MinAndMaxValueDemo (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Value INT
);

INSERT INTO MinAndMaxValueDemo(Value) VALUES (10), (100), (50), (40);

ข้อมูลทั้งหมด

+----+-------+
| Id | Value |
+----+-------+
| 1  | 10    |
| 2  | 100   |
| 3  | 50    |
| 4  | 40    |
+----+-------+

หา Min/Max จาก 3 แถวแรก

SELECT MIN(Value) AS MinimumValue, MAX(Value) AS MaximumValue
FROM (SELECT Value FROM MinAndMaxValueDemo LIMIT 3) AS tbl1;

ผลลัพธ์

+--------------+--------------+
| MinimumValue | MaximumValue |
+--------------+--------------+
| 10           | 100          |
+--------------+--------------+

3 แถวแรก: 10, 100, 50 → Min=10, Max=100

การประยุกต์

  • LIMIT 3 OFFSET 1 - ข้าม 1 แถว แล้วเอา 3 แถว (แถวที่ 2-4)
  • รวมกับ ORDER BY ใน Subquery: (SELECT Value FROM table ORDER BY id DESC LIMIT 10) - 10 แถวล่าสุด
  • ใช้สำหรับ Pagination Statistics