在这个数据中-有多个与时间序列数据相关联的数据ID值。我试图从返回空值以用于任何时间戳值的任何数据ID值中排除所有数据。
换言之,我只想在所有时间戳值都有完整(非空)值的情况下返回数据ID值(及其数据)。
下面给出的查询示例:

SELECT
My.Table.DATA_ID,
MY.Table.timestamp,
My.Table.USE

FROM
My.TABLE

WHERE timestamp BETWEEN '2012-06-01 00:00:00' AND '2012-06-02 23:59:59'

-- Something here that says exclude all data from DATA_ID(s)
-- with any missing USE data,   i.e. USE=NULL

ORDER BY DATA_ID, timestamp

最佳答案

假设我正确理解您的问题,并且您希望排除包含空值的整批样本(由相等的数据id和时间戳确定)。

SELECT
My.Table.DATA_ID,
MY.Table.timestamp,
My.Table.USE

FROM
My.TABLE o

WHERE timestamp BETWEEN '2012-06-01 00:00:00' AND '2012-06-02 23:59:59'

and not exists (select 1 from my_table i
  where i.use is null
  and i.data_id = o.data_id
  and i.timestamp BETWEEN '2012-06-01 00:00:00' AND '2012-06-02 23:59:59')

ORDER BY DATA_ID, timestamp

10-01 05:43
查看更多