希望根据价格列中的最后两位数字过滤查询

时间:2019-02-26 19:34:58

标签: sql amazon-redshift

我正在尝试进行一项分析,以分析基于价格点的转化变化。为此,我正在尝试根据最后两位数字对价格进行分类。我将如何根据where子句的最后两位进行过滤?我要过滤以.99,(。25,50,.75,),。%0等结尾的价格

1 个答案:

答案 0 :(得分:4)

通常要使用“最后一位”进行过滤,将使用模运算符%,即除法运算的余数。

对于整数,其含义很清楚:123 % 100 = 23123 % 10 = 3。对于任何x是整数x % 1 = 0(因为任何整数都可以被1整除)

在Redshift中,它似乎也适用于小数:

select 123.99 % 1 as cents;

  

     

0.99

因此,select price from table where price % 1 = 0.99应该向您返回所有以.99结尾的价格,我们可以轻松地对其进行验证:

with prices as (
  select 9.99 as price union 
  select 9.43 union
  select 0.99 union 
  select 2
)
select * 
from prices
where price % 1 = 0.99;

收益

price
9.99
0.99