我正在寻找一个查询,它将查看一个表的"reading“列,并返回过去一小时内的平均读数与另一个列(称为高度) id为1或2的差值。
本质上,取过去一小时内高度值为1的所有读数的平均值,取过去一小时内高度值为2的所有读数的平均值,然后减去两个值。
如何在sqlalchemy中的一个查询中完成此操作?
发布于 2015-07-31 19:04:34
可能不是您想要的,因为我不知道sqlalchemy,但要实现的原始Postgresql SQL查询可能是
SELECT
AVG(CASE WHEN height = 2 THEN reading ELSE NULL END) -
AVG(CASE WHEN height = 1 THEN reading ELSE NULL END)
FROM table
WHERE reading_time >= (CURRENT_TIMESTAMP - INTERVAL '1 HOUR')
这利用了空值被排除在AVG聚合函数之外的事实。
https://stackoverflow.com/questions/31752678
复制