Bigquery:将多个where子句中的数据组合为一个sql查询中的一个字符串

时间:2019-08-14 08:58:29

标签: google-bigquery bigquery-standard-sql

我正在使用Grafana,需要将数据显示为来自同一列但具有2个不同的where子句的singlestat。

示例:

#standardSQL
SELECT
  timestamp AS Time,
  valueString AS Number
FROM `db`
WHERE
  id = '1.1.0' AND
  deviceId = '$deviceId'
ORDER BY 1

例如,第二个ID是 1.1.1 ,尽管查询完全相同。 由于以后无法合并数据,因此需要在sql查询中进行处理。

从上面的查询中,我得到一个像 1502392 的数字,从第二个查询中,我得到一个像 D 的索引。我想将其显示为“ 1502392-D”

1 个答案:

答案 0 :(得分:0)

deviceId是否唯一?如果是这样,您可以尝试这样的事情;

    with t1 as(
SELECT
  timestamp AS Time,
  valueString AS Number
FROM `db`
WHERE
  id = '1.1.0' AND
  deviceId = '$deviceId'
ORDER BY 1
),
t2 as 
SELECT
  timestamp AS Time,
  valueString AS ind
FROM `db`
WHERE
  id = '1.1.1' AND
  deviceId = '$deviceId'
ORDER BY 1
)
select t1.Time,concat(t1.Number,t2.ind) from t1 join t2 on t1.deviceId=t2.deviceId and t1.Time=t2.Time