Mysql SQL代码错误(偏移量0行仅获取前10行)

Mysql SQL代码错误(偏移量0行仅获取前10行),mysql,sql-fetch,Mysql,Sql Fetch,我想为家庭助理确定一天的平均温度。我已经将传感器连接到家庭助理,家庭助理将数据发送到phpmyadmin。我无法通过home assistant单独发送传感器,但它们都列在文件夹状态中。见下文 通过home assistant发送sql代码,我可以在数据库中搜索值。所以现在我试图找到最后100次测量的平均值+/-1天。为了实现这一点,我编写了以下sql代码 SELECT AVG(`state`) FROM states WHERE state_id > (select state_id

我想为家庭助理确定一天的平均温度。我已经将传感器连接到家庭助理,家庭助理将数据发送到phpmyadmin。我无法通过home assistant单独发送传感器,但它们都列在文件夹状态中。见下文

通过home assistant发送sql代码,我可以在数据库中搜索值。所以现在我试图找到最后100次测量的平均值+/-1天。为了实现这一点,我编写了以下sql代码

SELECT AVG(`state`) 
FROM states 
WHERE state_id > (select state_id 
                    FROM states 
                    WHERE entity_id='sensor.weatherstation_ground_temperature' 
                    AND state <> unknown 
                    ORDER BY state_id DESC 
                    OFFSET 0 ROWS FETCH FIRST 100 ROWS ONLY)
如果我在phpmyadmin中键入此项,则会出现以下错误:

1064-第1行中用于“偏移量0行仅获取前100行限制0,25”的语法中存在错误

我的问题是:我做错了什么,或者有更好的方法吗?

fetchfirst在MySQL中不存在;你需要限制

查询中的其他问题:

使用LIMIT的子查询不能与IN运算符一起使用:您可以改为使用联接

状态未知应拼写为状态“未知”。这是一个语法错误


旁注:偏移量0是默认值,因此我可以在这里忽略。

Frech first rows only不是mysql语法。请改用limit。对不起,sql对我来说是全新的。当我输入代码时,仍然得到一个错误:1054-字段列表中的未知列“s.state”,我想这可能是它存储的文件夹和列sensor_logging.state。我应该在这段代码中更改什么?@Tibert:对不起,有一个拼写错误,我刚刚修复了它,你能再试一次吗?代码正常,但输出为空,传感器没有注册数字。很抱歉我的错误用荷兰语拼写了一些东西。非常感谢你!!这件事花了我很长时间。
SELECT AVG(s.`state`) 
FROM states s
INNER JOIN (
    SELECT state_id 
    FROM states 
    WHERE entity_id='sensor.weatherstation_ground_temperature'  AND state <> 'unknown' 
    ORDER BY state_id DESC 
    LIMIT 100
) x ON x.state_id = s.state_id