2017-02-26 105 views
0

假设你有两张桌子。如何计算SQL中的百分比差异?

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”的,我怎么计算的Numberone和NumberTwo之间的所有事情完成内最近30天的第90个百分点的差别。

这是我到目前为止有:

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

我是新来的SQL和不知道如何为这一切创造一个查询。我是否需要使用子查询?

+3

请与您正在使用的数据库标记您的问题。 –

回答

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()) 
+0

如果是第90百分位,那么我应该将100.0改为90.0吧?只是想第二个意见......感谢您的回答! – pr338

0

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