下面这段代码有问题吗?SELECT $__timeGroupAlias(H,1h), MAX(PARAMVALUE) FROM ( select to_number(paramvalue,'99.99') as paramvalue, CAST(starttime AS timestamp) as H from s01mplc.r_eqp_rawdata where line='S013CBIM01' and $__timeFilter(CAST(starttime AS timestamp)) and pt_insert_date=to_char(current_date,'yyyymmdd') and parameter like 'FilmDownTime0%' order by starttime desc )A GROUP BY 1
时间: 2024-01-31 11:04:11 浏览: 545
这段 SQL 语句的语法是正确的,但是如果要在 Grafana 中使用它,需要注意以下几点:
1. Grafana 使用的是 PostgreSQL 语法,而不是 Oracle SQL 语法,因此需要将 `to_char(current_date,'yyyymmdd')` 替换为 `to_char(now(), 'YYYYMMDD')`。
2. Grafana 中的时间变量 `$__timeGroupAlias()` 和 `$__timeFilter()` 是在运行时通过替换变量得到的,因此需要在变量前加上 `"`,如 `"H"` 和 `"1h"`。同时,为了避免变量名冲突,建议将变量名改为不重复的名称,如 `$__timeGroupAlias(H,1h)` 改为 `$__timeGroupAlias(my_time_field,1h)`。
修改后的 SQL 语句如下:
```sql
SELECT $__timeGroupAlias("my_time_field", '1h'), MAX(PARAMVALUE)
FROM (
SELECT to_number(paramvalue,'99.99') as paramvalue, CAST(starttime AS timestamp) as "my_time_field"
FROM s01mplc.r_eqp_rawdata
WHERE line='S013CBIM01'
AND $__timeFilter(CAST(starttime AS timestamp))
AND pt_insert_date=to_char(now(), 'YYYYMMDD')
AND parameter like 'FilmDownTime0%'
ORDER BY starttime DESC
) A
GROUP BY 1
```
使用这个 SQL 语句创建 Grafana 的图表时,请确保正确设置数据源、时间范围和变量名称。
阅读全文