首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于Tdengine按列排序

关于Tdengine按列排序
EN

Stack Overflow用户
提问于 2021-11-14 10:43:52
回答 1查看 45关注 0票数 0

最近,我使用TDengine在TDengine上通过连接RESTful JDBC连接器来执行RESTful慢速查询记录。我需要根据“成本时间”字段对结果进行排序,但是返回的结果显示错误,声称只支持按标记或时间戳排序(主列)。我查看了TDengine的正式文档,但没有找到更多的信息。TDengine是否无法支持按非主键字段进行排序的功能,或者是否有一种与mysql-orderby不同的排序方法还不知道?

描述表格:

代码语言:javascript
复制
describe test.testtable
代码语言:javascript
复制
{. "status":"succ",
   "head":["Field","Type","Length","Note"],
   "column_meta":[["Field",8,64],["Type",8,20],["Length",4,4], ["Note",8,8]],
   "data":[["ts","TIMESTAMP",8,""],["col1","NCHAR",8,""]],"rows":2}

选择表

代码语言:javascript
复制
select * from test.testtable order by col1
代码语言:javascript
复制
{
   "status" : "error",
   "code" : 512,
   "desc" : "invalid SQL: invalid operation: order by primary 
      timestamp, first tag or groupby column in groupby clause allowed"
}
EN

回答 1

Stack Overflow用户

发布于 2021-12-15 09:07:59

在TDengine数据库中,只允许在group子句中使用主时间戳和标记作为order列,您可以使用taos查找它。

代码语言:javascript
复制
taos> desc stb;
             Field              |         Type         |   Length    |   Note   |
=================================================================================
 ts                             | TIMESTAMP            |           8 |          |
 c0                             | INT                  |           4 |          |
 c1                             | NCHAR                |          70 |          |
 c2                             | INT                  |           4 |          |
 c3                             | INT                  |           4 |          |
 c4                             | FLOAT                |           4 |          |
 c5                             | INT                  |           4 |          |
 c6                             | INT                  |           4 |          |
 t0                             | NCHAR                |          20 | TAG      |
 t1                             | INT                  |           4 | TAG      |
Query OK, 10 row(s) in set (0.000174s)

taos> select * from stb order by c0 desc limit 10;

DB error: invalid operation: only primary timestamp, first tag/tbname in groupby clause allowed as order column (0.000916s)
taos> select * from stb order by t1 desc limit 10;

DB error: invalid operation: only tag in groupby clause allowed in order clause (0.000825s)

taos> select * from stb order by ts desc limit 3;
           ts            |     c0      |               c1               |     c2      |     c3      |          c4          |     c5      |     c6      |               t0               |     t1      |
=======================================================================================================================================================================================================
 2020-10-01 00:00:00.099 |  -219661821 | G8cMQWdJm8J9w1hFRYIQP8dk4xU... |    78772435 |  -410543182 |        -950962.43750 |  -557459241 |   116557188 | shanghai                       |          74 |
 2020-10-01 00:00:00.099 |  -457689130 | 8UHa3VDA7NZmsGh7EGClOYvlip6... |    82077056 |   446259055 |        2141141.00000 |   848015664 |   575700881 | beijing                        |          73 |
 2020-10-01 00:00:00.099 |    66595749 | EGafmHXYKdcHzzdRasxCKHJiEaX... |  -203469760 |    17904570 |        2102826.50000 |  -997489652 |  -148873667 | shanghai                       |          72 |
Query OK, 3 row(s) in set (0.059262s)

taos> select count(*) from stb group by t1 order by t1 desc slimit 5;
       count(*)        |     t1      |
======================================
                   100 |          99 |
                   100 |          98 |
                   100 |          97 |
                   100 |          96 |
                   100 |          95 |
Query OK, 5 row(s) in set (0.002158s)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69962233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档