使用可以具有多个值的 Where 查询时出现 Grafana Postgres 错误
Grafana Postgres Error When Using Where Query That Can Have Multiple Values
我有一个从 PostgreSQL 数据库中提取的 Grafana 网站。在仪表板中,我试图创建一个折线图,并在其中两列(项目和史诗)上设置了过滤器。过滤器对项目工作正常(可能是因为只有一个项目值,并且数据库中的所有行都设置为该值)。
但是当我尝试过滤“史诗”时,它只适用于单一选择。 'All' 选择给我以下错误:
pq: syntax error at or near ","
下面是我如何尝试配置此过滤器的屏幕截图。
另请注意,史诗与一个变量相关联,下面是我如何设置该变量的屏幕截图
编辑
请求生成SQL
{
"request": {
"url": "api/tsdb/query",
"method": "POST",
"data": {
"from": "1577958613797",
"to": "1609224964157",
"queries": [
{
"refId": "A",
"intervalMs": 21600000,
"maxDataPoints": 1470,
"datasourceId": 4,
"rawSql": "SELECT\n \"timestamp\" AS \"time\",\n cycle_time AS \"cycle_time\"\nFROM issue_metrics\nWHERE\n $__timeFilter(\"timestamp\") AND\n project = 'LUSFPRO3' AND\n epic = 'LUSFPRO3-68','LUSFPRO3-2','LUSFPRO3-69'\nORDER BY 1",
"format": "time_series"
}
]
},
"hideFromInspector": false
},
"response": {
"results": {
"A": {
"error": "pq: syntax error at or near \",\"",
"refId": "A",
"meta": {
"executedQueryString": "SELECT\n \"timestamp\" AS \"time\",\n cycle_time AS \"cycle_time\"\nFROM issue_metrics\nWHERE\n \"timestamp\" BETWEEN '2020-01-02T09:50:13.797Z' AND '2020-12-29T06:56:04.157Z' AND\n project = 'LUSFPRO3' AND\n epic = 'LUSFPRO3-68','LUSFPRO3-2','LUSFPRO3-69'\nORDER BY 1"
},
"series": null,
"tables": null,
"dataframes": null
}
},
"message": "pq: syntax error at or near \",\""
}
}
该多值变量生成错误的 SQL 语法:
epic = 'LUSFPRO3-68','LUSFPRO3-2','LUSFPRO3-69'
GUI 编辑器仅适用于简单的查询。切换到文本编辑模式并将查询中的 epic
条件更新为:
epic IN ($Epic)
以便生成正确的 SQL 语法:
epic IN ('LUSFPRO3-68','LUSFPRO3-2','LUSFPRO3-69')
我有一个从 PostgreSQL 数据库中提取的 Grafana 网站。在仪表板中,我试图创建一个折线图,并在其中两列(项目和史诗)上设置了过滤器。过滤器对项目工作正常(可能是因为只有一个项目值,并且数据库中的所有行都设置为该值)。
但是当我尝试过滤“史诗”时,它只适用于单一选择。 'All' 选择给我以下错误:
pq: syntax error at or near ","
下面是我如何尝试配置此过滤器的屏幕截图。
另请注意,史诗与一个变量相关联,下面是我如何设置该变量的屏幕截图
编辑
请求生成SQL
{
"request": {
"url": "api/tsdb/query",
"method": "POST",
"data": {
"from": "1577958613797",
"to": "1609224964157",
"queries": [
{
"refId": "A",
"intervalMs": 21600000,
"maxDataPoints": 1470,
"datasourceId": 4,
"rawSql": "SELECT\n \"timestamp\" AS \"time\",\n cycle_time AS \"cycle_time\"\nFROM issue_metrics\nWHERE\n $__timeFilter(\"timestamp\") AND\n project = 'LUSFPRO3' AND\n epic = 'LUSFPRO3-68','LUSFPRO3-2','LUSFPRO3-69'\nORDER BY 1",
"format": "time_series"
}
]
},
"hideFromInspector": false
},
"response": {
"results": {
"A": {
"error": "pq: syntax error at or near \",\"",
"refId": "A",
"meta": {
"executedQueryString": "SELECT\n \"timestamp\" AS \"time\",\n cycle_time AS \"cycle_time\"\nFROM issue_metrics\nWHERE\n \"timestamp\" BETWEEN '2020-01-02T09:50:13.797Z' AND '2020-12-29T06:56:04.157Z' AND\n project = 'LUSFPRO3' AND\n epic = 'LUSFPRO3-68','LUSFPRO3-2','LUSFPRO3-69'\nORDER BY 1"
},
"series": null,
"tables": null,
"dataframes": null
}
},
"message": "pq: syntax error at or near \",\""
}
}
该多值变量生成错误的 SQL 语法:
epic = 'LUSFPRO3-68','LUSFPRO3-2','LUSFPRO3-69'
GUI 编辑器仅适用于简单的查询。切换到文本编辑模式并将查询中的 epic
条件更新为:
epic IN ($Epic)
以便生成正确的 SQL 语法:
epic IN ('LUSFPRO3-68','LUSFPRO3-2','LUSFPRO3-69')