如果我想从整个表中选择最小值和最大值,我可以使用:
SELECT min(price) as min_price, max(price) as max_price FROM `prices`
Run Code Online (Sandbox Code Playgroud)
但是如何从表格的一部分中选择最小值和最大值?例如,我在表中有30行.我想从前十行,然后从后十行中选择最小值和最大值,然后形成最后10行.
我尝试过类似的东西
SELECT min(price) as min_price, max(price) as max_price FROM `prices` LIMIT 0,10
Run Code Online (Sandbox Code Playgroud)
但这没用.
如何以最少的查询解决此问题?
reg*_*gie 14
SELECT MIN(PRICE) AS MinPrice, MAX(PRICE) AS MaxPrice FROM (SELECT PRICE FROM PRICES LIMIT 10) tmp;
Run Code Online (Sandbox Code Playgroud)
此外,MySQL有一个很酷的功能,可以让你返回任意范围的行(例如返回行10-20).这对于显示记录页面非常方便:
SELECT column FROM table
LIMIT 10 OFFSET 20
Run Code Online (Sandbox Code Playgroud)
上面的查询将返回20-30行.
简而言之,要在查询的情况下将行返回20到30,您可以使用:
SELECT MIN(PRICE) AS MinPrice, MAX(PRICE) AS MaxPrice
FROM (SELECT PRICE FROM PRICES LIMIT 10 OFFSET 20);
Run Code Online (Sandbox Code Playgroud)
您需要更改偏移值以指定范围的起点.
你有没有尝试过 :
SELECT min(price) as min_price, max(price) as max_price FROM
(SELECT price FROM `prices` LIMIT 0,10);
Run Code Online (Sandbox Code Playgroud)