在这个数据中-有多个与时间序列数据相关联的数据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