Php 选择最后7条插入记录的最大值和最小值
我需要选择为特定设备插入的最后8条记录的最大值和最小值。 我有一个名为letture的表,其结构如下: id,id_dispositivo,id_tenza,id_impianto,id_lettura,data,valore 在这个表上,我做了一个查询,以提取id_dispositivo=1的最后8条记录Php 选择最后7条插入记录的最大值和最小值,php,mysql,sql,database,Php,Mysql,Sql,Database,我需要选择为特定设备插入的最后8条记录的最大值和最小值。 我有一个名为letture的表,其结构如下: id,id_dispositivo,id_tenza,id_impianto,id_lettura,data,valore 在这个表上,我做了一个查询,以提取id_dispositivo=1的最后8条记录 SELECT valore FROM `letture` WHERE id_dispositivo = 1 ORDER BY id_lettura DESC LIMIT 0,8 对于此查询
SELECT valore FROM `letture` WHERE id_dispositivo = 1 ORDER BY id_lettura DESC LIMIT 0,8
对于此查询的结果,我需要捕捉最大值和最小值您需要一个子查询:
SELECT MIN(valore), MAX(valore)
FROM (SELECT valore
FROM `letture`
WHERE id_dispositivo = 1
ORDER BY id_lettura DESC
LIMIT 8
) last8;
您需要一个子查询:
SELECT MIN(valore), MAX(valore)
FROM (SELECT valore
FROM `letture`
WHERE id_dispositivo = 1
ORDER BY id_lettura DESC
LIMIT 8
) last8;
只需使用子选择:
SELECT MIN(valore), MAX(valore) FROM (
SELECT valore
FROM `letture`
WHERE id_dispositivo = 1 ORDER BY id_lettura DESC LIMIT 0,8
) T1;
只需使用子选择:
SELECT MIN(valore), MAX(valore) FROM (
SELECT valore
FROM `letture`
WHERE id_dispositivo = 1 ORDER BY id_lettura DESC LIMIT 0,8
) T1;
--适用于sql server 2008
Create Table Testing(TestID Integer Primary Key,Price Float);
Insert Into Testing Values (1,12.00);
Insert Into Testing Values (2,15.00);
Insert Into Testing Values (3,20.00);
Insert Into Testing Values (4,13.00);
Insert Into Testing Values (5,11.00);
Insert Into Testing Values (6,12.00);
Insert Into Testing Values (7,17.00);
Insert Into Testing Values (8,18.00);
Insert Into Testing Values (9,19.00);
Insert Into Testing Values (10,22.00);
Create Function dbo.GetMinID(@MaxId Integer,@NoOfRows Integer) Returns Integer
as
Begin
Declare @MinMax Integer
IF @NoOfRows > 1
Set @MinMax=dbo.GetMinID((Select MAX(TestID) From Testing where TestID <@MaxId),@NoOfRows-1)
else
Set @MinMax=(Select MAX(TestID) From Testing where TestID < @MaxId);
Return @MinMax;
End
Select R.TestID,dbo.GetMinID(R.TestID,8) as MinMax From (Select MAX(TestID) TestID
From Testing) R
--适用于sql server 2008
Create Table Testing(TestID Integer Primary Key,Price Float);
Insert Into Testing Values (1,12.00);
Insert Into Testing Values (2,15.00);
Insert Into Testing Values (3,20.00);
Insert Into Testing Values (4,13.00);
Insert Into Testing Values (5,11.00);
Insert Into Testing Values (6,12.00);
Insert Into Testing Values (7,17.00);
Insert Into Testing Values (8,18.00);
Insert Into Testing Values (9,19.00);
Insert Into Testing Values (10,22.00);
Create Function dbo.GetMinID(@MaxId Integer,@NoOfRows Integer) Returns Integer
as
Begin
Declare @MinMax Integer
IF @NoOfRows > 1
Set @MinMax=dbo.GetMinID((Select MAX(TestID) From Testing where TestID <@MaxId),@NoOfRows-1)
else
Set @MinMax=(Select MAX(TestID) From Testing where TestID < @MaxId);
Return @MinMax;
End
Select R.TestID,dbo.GetMinID(R.TestID,8) as MinMax From (Select MAX(TestID) TestID
From Testing) R
您是希望对此进行SQL查询,还是需要在获得结果并将其保存为字符串后使用php进行查询?我想,通过查询得到它会更好,因为它需要更少的数据管理。只有SQL,以后可能是PHP,因为现在我正在努力使用SQL查询。您是希望为此使用SQL查询,还是需要在获得结果并将其保存为字符串后使用PHP执行此操作?我想通过查询得到它会更好,因为它需要更少的数据管理。只有SQL,以后可能是PHP,因为现在我正在努力使用SQL querylast8作为临时表的名称?@LucaScalvi。last8是子查询的别名,在MySQL中是必需的。last8是临时表的名称?@LucaScalvi。last8是子查询的别名,在MySQL中是必需的。T1是临时表的名称吗?你的回答是正确的,但我标记了另一个,因为他先回答。谢谢1是别名:每个子选择都必须有一个别名。T1是临时表的名称?你的回答是正确的,但我标记了另一个,因为他先回答。谢谢1是别名:每个子选择都必须有一个别名。