【发布时间】:2016-08-24 16:11:19
【问题描述】:
我有一个这样的 PostgreSQL 数据库
具有数据类型的表和相应的列是
读数
meas_id - integer(Foreign keyed to Measurement.meas_id)
actual_meas - integer
predicted_meas - integer
pdatetime - Timestamp with timezone (UTC)
status - Enum('completed', 'inprogress', 'nottaken')
测量
meas_id - integer
meas_name - string
Meas_name has measurements length, breadth, width, height
对于每个测量“长度”和“宽度”,我正在尝试计算过去 30 天内所有已完成测量的实际值和预测值之间的 95% 差异。
我正在尝试这样做,但没有得到它
SELECT
Measurement.meas_name,
MIN(Readings.actual_meas - Readings.predicted_meas) AS Difference
FROM
(
SELECT TOP 95 PERCENT
FROM Readings
ORDER BY Difference DESC
) AS NinetyFivePerc
JOIN Measurement
WHERE NinetyFivePerc.meas_id = Measurement.meas_id
AND NinetyFivePerc.pdatetime >= DATEADD(DAY, -30, GETDATE())
AND Measurement.meas_name IN ('length','breadth')
AND NinetyFivePerc.status = 'completed'
我正在学习 SQL,因此请提供有关实现它的优化方式的输入。
【问题讨论】:
标签: sql postgresql tsql