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