文档

UNION子句

UNION子句将两个或更多SELECT语句的结果合并为单个结果集。默认情况下,UNION仅保留唯一的行。要保留所有行,包括重复的行,请使用UNION ALL

在使用UNION子句时:

  • 每个结果集中列的数量必须相同。
  • 列必须按相同的顺序排列,并且数据类型必须相同或兼容。

语法

SELECT expression[,...n]
FROM measurement_1
UNION [ALL]
SELECT expression[,...n]
FROM measurement_2

示例

来自不同度量单位的结果集的合并

(
  SELECT
    'h2o_pH' AS measurement,
    time,
    "pH" AS "water_pH"
  FROM "h2o_pH"
  LIMIT 4
)
UNION
(
  SELECT
    'h2o_quality' AS measurement,
    time,
    index
  FROM h2o_quality
  LIMIT 4
)

查看示例结果

在单个结果集中返回最高和最低三个结果

以下示例使用了InfluxDB入门教程中提供的示例数据集。

(
  SELECT
    'low' as type,
    time,
    co
  FROM home
  ORDER BY co ASC
  LIMIT 3
)
UNION 
(
  SELECT
    'high' as type,
    time,
    co
  FROM home
  ORDER BY co DESC
  LIMIT 3
)

查看示例结果

使用自定义数据的合并查询

以下示例使用了InfluxDB入门教程中提供的示例数据集。它还使用了表值构造函数来构建包含自定义数据的表。

SELECT *
FROM home
WHERE
  time >= '2022-01-01T08:00:00Z'
  AND time <= '2022-01-01T12:00:00Z'
UNION
SELECT * FROM
  (VALUES (0, 34.2, 'Bedroom', 21.1, '2022-01-01T08:00:00Z'::TIMESTAMP),
          (0, 34.5, 'Bedroom', 21.2, '2022-01-01T09:00:00Z'::TIMESTAMP),
          (0, 34.6, 'Bedroom', 21.5, '2022-01-01T10:00:00Z'::TIMESTAMP),
          (0, 34.5, 'Bedroom', 21.8, '2022-01-01T11:00:00Z'::TIMESTAMP),
          (0, 33.9, 'Bedroom', 22.0, '2022-01-01T12:00:00Z'::TIMESTAMP)
  ) newRoom(co, hum, room, temp, time)
ORDER BY room, time

查看示例结果


这个页面有帮助吗?

感谢您的反馈!


Flux 的未来

Flux 正在进入维护模式。您可以在不修改代码的情况下继续使用它。

了解更多

InfluxDB v3 的增强功能和 InfluxDB 集群版现已上市

新功能,包括更快的查询性能和管理工具,推动了 InfluxDB v3 产品线的进步。InfluxDB 集群版现已上市。

InfluxDB v3 性能和功能

InfluxDB v3 产品线在查询性能方面取得了显著增强,并提供了新的管理工具。这些增强包括用于监控 InfluxDB 集群健康状况的操作仪表板、InfluxDB 云专用版中的单点登录(SSO)支持,以及用于令牌和数据库的新管理 API。

了解新的 v3 增强


InfluxDB 集群版上市

InfluxDB 集群版现已上市,并为您在自管理的堆栈中提供了 InfluxDB v3 的功能。

与我们谈论 InfluxDB 集群版