如何获得django中同一列的两个值的差异

How to get the difference of two values of same column in django

所以我在 Postgres 数据库中有 table T,其中包含用户的日常值。从那个 table,我需要找到所有用户的属性 C 的昨天值和今天值之间的差异,以及 return 差异大于 10 的用户的 ID。

这整个事情可以在一两个查询中完成吗?我想到的解决方案很幼稚,需要为每个用户单独查询。任何比这更有效的东西也会很棒。

没有 table T 的架构,这只是瞎猜。开始了:

WITH y_date AS (
    SELECT 
        user_id, c
    FROM 
        t
    WHERE 
        timestamp_fld::date = current_date - (interval - '1 day')
),
WITH t_date AS (
    SELECT 
        user_id, c
    FROM 
        t
    WHERE 
        timestamp_fld::date = current_date
)
SELECT 
   user_id
FROM 
   y_date
JOIN 
   t_date
ON
    y_date.user_id = t_date.user_id
WHERE
   abs(t_date.c - y_date.c) > 10

使用 CTE(通用 Table 表达式)提取昨天和今天的值,然后加入这些结果以获得每个用户的绝对差异,并且仅 return 那些大于 10 的用户. 以上是基于一堆假设。更好的答案将取决于更多信息。