【问题标题】:Sort in a specific order manually手动按特定顺序排序
【发布时间】:2021-02-16 08:41:38
【问题描述】:

我有以下查询:

SELECT mean("voltage") FROM "cells" WHERE 
("cell" = 'Cell 1' or "cell" = 'Cell 2' OR "cell" = 'Cell 3' OR "cell" = 'Cell 4' OR 
 "cell" = 'Cell 5' OR "cell" = 'Cell 6' OR "cell" = 'Cell 7' OR "cell" = 'Cell 8' OR 
 "cell" = 'Cell 9' OR "cell" = 'Cell 10' OR "cell" = 'Cell 11' OR "cell" = 'Cell 12' OR 
 "cell" = 'Cell 13' OR "cell" = 'Cell 14' OR "cell" = 'Cell 15' OR "cell" = 'Cell 16') 
AND $timeFilter 
GROUP BY time($__interval), "cell" fill(linear)

我的问题是流入排序为字符串,所以我得到单元格 1,然后是单元格 10,我想要单元格 1,单元格 2 ......,我该如何实现?

【问题讨论】:

  • 您可以尝试使用 WHERE cell IN ("Case 1", "Case 2" ...) 或正则表达式来使您的查询更小

标签: influxdb


【解决方案1】:

你可以使用

ORDER BY SUBSTRING(cell, 6, 12) * 1;

SUBSTRING(test, 6, 12) 将从开头删除“Cell”,* 1 会将其余部分转换为数字。

【讨论】:

  • 我尝试了你的建议,但我得到了InfluxDB Error: error parsing query: only ORDER BY time supported at this time
猜你喜欢
  • 2018-03-28
  • 2014-08-17
  • 1970-01-01
  • 1970-01-01
  • 2012-02-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-04
  • 2016-11-01
相关资源
最近更新 更多