Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择最后7条插入记录的最大值和最小值_Php_Mysql_Sql_Database - Fatal编程技术网

Php 选择最后7条插入记录的最大值和最小值

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 对于此查询

我需要选择为特定设备插入的最后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 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是别名:每个子选择都必须有一个别名。