首页 > 解决方案 > 手动按特定顺序排序

问题描述

我有以下查询:

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……,我该如何实现?

标签: influxdb

解决方案


您可以使用

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

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


推荐阅读