如何计算SQL中的百分位数差异?

时间:2017-02-26 20:38:14

标签: sql postgresql

我们假设您有2张桌子。

Table 1 - T
Columns
City ID(Foreign keyed to C.cityid)
Completed (yes or no)
NumberOne (integer)
NumberTwo (integer)
Date (timestamp with timezone)

Table 2 - C
City ID (integer)
City Name (string)

对于每个城市' A'和' B'如何计算过去30天内所有已完成事物的NumberOne和NumberTwo之间的第90个百分点差异。

这是我到目前为止所拥有的:

SELECT  
    100.0*(T.NumberOne - T.NumberTwo) / T.NumberTwo As PercentDiff
FROM T
JOIN C ON CityID

我是SQL的新手,不知道如何为所有这些创建一个查询。我需要使用子查询吗?

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

SELECT 
  100.0*(t.NumberOne - t.NumberTwo) / t.NumberTwo As PercentDiff
from T t
inner join C c
on t.[City ID] = c.[City ID]
where c.Name in ('A','B') 
and t.Completed = 'yes'
and t.Date > DATEADD(day, -30, GETDATE())

答案 1 :(得分:0)

尝试ON CITYID = CITYID in语句需要一个布尔表达式。