目前PinusDB不支持子查询以及多表join,查询语法如下所示:

    其中:WHERE 子句,ORDER BY 子句,GROUP BY子句,LIMIT 子句 为可选。

    支持的聚合函数以及条件请参考第3章 基本组成

    ORDER BY 子句与GROUP BY子句不能同时存在。

    若不指定LIMIT 子句,默认查询前1000条,一次最多查询10000条。

    若使用聚合函数,则每个聚合函数必须用AS对列定义一个别名。

    1. CREATE TABLE tab01
    2. (
    3. devid bigint,
    4. tstamp datetime,
    5. val01 bool,
    6. val02 bigint,
    7. val03 datetime,
    8. val04 double,
    9. val06 blob
    10. )

    查询设备1在2019年7月15日的1000条数据如下所示

    1. SELECT *
    2. FROM tab01
    3. WHERE devid=1 AND tstamp >= '2019-07-15 0:0:0'
    4. LIMIT 1000

    查询设备1在2019年7月15日的1000条满足指定条件的数据

    查询设备1在2019年7月15日的后1000条数据,按时间戳倒序

    1. SELECT *
    2. FROM tab01
    3. AND tstamp >= '2019-07-15 0:0:0'
    4. AND tstamp < '2019-07-16 0:0:0'
    5. ORDER BY tstamp DESC
    6. LIMIT 1000

    其他查询可以根据文档自行编写。

    1. 设备聚合查询

    例如:查询设备1 到 1000 最新的数据

    2. 时间聚合查询

    PinusDB支持按时间聚合,时间单位为秒(s)、分钟(m)、小时(h)和天(d)。

    例如,查询设备1 在2019-7-15 以小时为聚合val04的平均值:

    1. SELECT tstamp,
    2. AVG(val04) AS avg_04
    3. FROM tab01
    4. WHERE devid = 1 AND tstamp >= '2019-07-15 0:0:0'
    5. LIMIT 24

    按时间聚合时必须指定时间戳的开始时间。即上例中的

    tstamp >= '2019-07-15 0:0:0' , 若不指定则查询报错。