使用 WHERE 子句根据字段、标签或时间戳筛选结果。
语法
SELECT_clause FROM_clause WHERE <conditional_expression> [(AND|OR) <conditional_expression> [...]]
注意: 与 InfluxQL 不同,SQL 在 WHERE 子句中支持 OR 来指定多个条件,包括时间范围。
示例
请注意,WHERE 子句中的字符串字面量需要用单引号括起来。
按字段值筛选数据
SELECT *
FROM "h2o_feet"
WHERE "water_level" >= 9.78
查看示例结果
此查询返回 h2o_feet 度量中的数据,其中 water_level 字段值大于或等于 9.78。
| 水位 描述 | location | time | water_level |
|---|
| 大于等于 9 英尺 | coyote_creek | 2019-09-01T23:06:00.000Z | 9.8 |
| 大于等于 9 英尺 | coyote_creek | 2019-09-01T23:12:00.000Z | 9.829 |
| 大于等于 9 英尺 | coyote_creek | 2019-09-01T23:18:00.000Z | 9.862 |
| 大于等于 9 英尺 | coyote_creek | 2019-09-01T23:24:00.000Z | 9.892 |
| 大于等于 9 英尺 | coyote_creek | 2019-09-01T23:30:00.000Z | 9.902 |
| 大于等于 9 英尺 | coyote_creek | 2019-09-01T23:36:00.000Z | 9.898 |
按特定标签和字段值筛选数据
SELECT *
FROM "h2o_feet"
WHERE "location" = 'santa_monica' and "level description" = 'below 3 feet'
查看示例结果
此查询返回 h2o_feet 度量中的所有数据,其中 location 标签键为 santa_monica,并且 level description 字段值为 below 3 feet。
| 水位 描述 | location | time | water_level |
|---|
| 低于 3 英尺 | santa_monica | 2019-09-01T00:00:00.000Z | 1.529 |
| 低于 3 英尺 | santa_monica | 2019-09-01T00:06:00.000Z | 1.444 |
| 低于 3 英尺 | santa_monica | 2019-09-01T00:12:00.000Z | 1.335 |
| 低于 3 英尺 | santa_monica | 2019-09-01T00:18:00.000Z | 1.345 |
| 低于 3 英尺 | santa_monica | 2019-09-01T00:24:00.000Z | 1.27 |
按特定时间段筛选数据
SELECT *
FROM h2o_feet
WHERE "location" = 'santa_monica'
AND "time" >= '2019-08-19T12:00:00Z' AND "time" <= '2019-08-19T13:00:00Z'
查看示例结果
此查询返回时间戳大于或等于 08-19-2019T12:00:00Z 且小于或等于 08-19-2019T13:00:00Z 的结果。
| 水位 描述 | location | time | water_level |
|---|
| 低于 3 英尺 | santa_monica | 2019-08-19T12:00:00.000Z | 2.533 |
| 低于 3 英尺 | santa_monica | 2019-08-19T12:06:00.000Z | 2.543 |
| 低于 3 英尺 | santa_monica | 2019-08-19T12:12:00.000Z | 2.385 |
| 低于 3 英尺 | santa_monica | 2019-08-19T12:18:00.000Z | 2.362 |
| 低于 3 英尺 | santa_monica | 2019-08-19T12:24:00.000Z | 2.405 |
| 低于 3 英尺 | santa_monica | 2019-08-19T12:30:00.000Z | 2.398 |
按动态日期范围筛选数据
使用日期和时间函数按自动更新的相对时间段筛选数据。
获取昨天的数据
SELECT *
FROM h2o_feet
WHERE "location" = 'santa_monica'
AND time >= DATE_TRUNC('day', NOW() - INTERVAL '1 day')
AND time < DATE_TRUNC('day', NOW())
查看示例结果
此查询筛选数据,仅包括上一个日历 day 的记录。
NOW() - INTERVAL '1 day' 计算昨天的时戳。DATE_TRUNC('day', ...) 将日期截断到当天的开始(00:00:00)。- 范围从昨天的 00:00:00 到今天的 00:00:00。
| 水位 描述 | location | time | water_level |
|---|
| 低于 3 英尺 | santa_monica | 2019-08-18T12:00:00.000Z | 2.533 |
| 低于 3 英尺 | santa_monica | 2019-08-18T12:06:00.000Z | 2.543 |
| 低于 3 英尺 | santa_monica | 2019-08-18T12:12:00.000Z | 2.385 |
| 低于 3 英尺 | santa_monica | 2019-08-18T12:18:00.000Z | 2.362 |
| 低于 3 英尺 | santa_monica | 2019-08-18T12:24:00.000Z | 2.405 |
| 低于 3 英尺 | santa_monica | 2019-08-18T12:30:00.000Z | 2.398 |
获取过去 24 小时的数据
SELECT *
FROM h2o_feet
WHERE time >= NOW() - INTERVAL '1 day' AND location = 'santa_monica'
查看示例结果
此查询返回从当前时间点开始倒数 24 小内的数据。与“昨天”示例不同,此查询创建一个滚动的 24 小时窗口,该窗口会随着当前时间的变化而移动。
| 水位 描述 | location | time | water_level |
|---|
| 低于 3 英尺 | santa_monica | 2019-08-18T18:00:00.000Z | 2.120 |
| 低于 3 英尺 | santa_monica | 2019-08-18T18:06:00.000Z | 2.028 |
| 低于 3 英尺 | santa_monica | 2019-08-18T18:12:00.000Z | 1.982 |
| 低于 3 英尺 | santa_monica | 2019-08-19T06:00:00.000Z | 1.825 |
| 低于 3 英尺 | santa_monica | 2019-08-19T06:06:00.000Z | 1.753 |
| 低于 3 英尺 | santa_monica | 2019-08-19T06:12:00.000Z | 1.691 |
获取本周的数据
SELECT *
FROM h2o_feet
WHERE time >= DATE_TRUNC('week', NOW()) AND location = 'santa_monica'
查看示例结果
此查询返回从本周开始(周一 00:00:00)到当前时间的所有数据。DATE_TRUNC('week', NOW()) 函数将当前时间戳截断到本周的开始。
| 水位 描述 | location | time | water_level |
|---|
| 低于 3 英尺 | santa_monica | 2019-08-12T00:00:00.000Z | 2.064 |
| 低于 3 英尺 | santa_monica | 2019-08-14T09:30:00.000Z | 2.116 |
| 低于 3 英尺 | santa_monica | 2019-08-16T15:45:00.000Z | 1.952 |
| 低于 3 英尺 | santa_monica | 2019-08-18T12:00:00.000Z | 2.533 |
| 低于 3 英尺 | santa_monica | 2019-08-18T18:00:00.000Z | 2.385 |
| 低于 3 英尺 | santa_monica | 2019-08-19T10:30:00.000Z | 1.691 |
使用 OR 运算符筛选数据
SELECT *
FROM "h2o_feet"
WHERE "level description" = 'less than 3 feet' OR "water_level" < 2.5
查看示例结果
此查询返回 level description 字段值等于 less than 3 feet 或 water_level 字段值小于 2.5 的结果。
| 水位 描述 | location | time | water_level |
|---|
| 低于 3 英尺 | coyote_creek | 2019-08-25T10:06:00.000Z | 2.398 |
| 低于 3 英尺 | coyote_creek | 2019-08-25T10:12:00.000Z | 2.234 |
| 低于 3 英尺 | coyote_creek | 2019-08-25T10:18:00.000Z | 2.064 |
| 低于 3 英尺 | coyote_creek | 2019-08-25T10:24:00.000Z | 1.893 |
支持和反馈
感谢您成为我们社区的一员!我们欢迎并鼓励您对 InfluxDB 3 Core 和本文档提供反馈和错误报告。要获得支持,请使用以下资源
具有年度合同或支持合同的客户可以 联系 InfluxData 支持。