SQL 代码错误(OFFSET 0 ROWS FETCH FIRST 10 ROWS ONLY)
SQL code error (OFFSET 0 ROWS FETCH FIRST 10 ROWS ONLY)
我正在尝试为家庭助理确定一天的平均温度。我已将传感器链接到家庭助理,后者将数据发送到 phpmyadmin。我无法通过家庭助手单独发送传感器,但它们都列在文件夹状态中。见下文。
sensors in folder states
通过家庭助理发送 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 - There is an error in the syntax used for 'OFFSET 0 ROWS FETCH FIRST 100 ROWS ONLY) LIMIT 0, 25' in line 1.
我的问题是:我做错了什么,或者有更好的方法吗?
fetch first
在 MySQL 中不存在;您需要 limit
。
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
您查询的其他问题:
使用 LIMIT
的子查询不能与 IN
运算符一起使用:您可以使用 JOIN
代替
state <> unknown
应该拼成state <> 'unknown'
(这是语法错误)
旁注:OFFSET 0
是默认的,所以我这里可以忽略。
我正在尝试为家庭助理确定一天的平均温度。我已将传感器链接到家庭助理,后者将数据发送到 phpmyadmin。我无法通过家庭助手单独发送传感器,但它们都列在文件夹状态中。见下文。
sensors in folder states
通过家庭助理发送 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 - There is an error in the syntax used for 'OFFSET 0 ROWS FETCH FIRST 100 ROWS ONLY) LIMIT 0, 25' in line 1.
我的问题是:我做错了什么,或者有更好的方法吗?
fetch first
在 MySQL 中不存在;您需要 limit
。
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
您查询的其他问题:
使用
LIMIT
的子查询不能与IN
运算符一起使用:您可以使用JOIN
代替state <> unknown
应该拼成state <> 'unknown'
(这是语法错误)
旁注:OFFSET 0
是默认的,所以我这里可以忽略。