Нужно отфильтровать запрос по двум последним цифрам в ценовом столбце - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь выполнить анализ, который анализирует изменения конверсии в зависимости от цены.Для этого я пытаюсь определить цены на основе последних двух цифр.Как бы я пошел о фильтрации на основе последних двух цифр в предложении where?Я хочу отфильтровать цены, заканчивающиеся на .99, (.25,50, .75,),.% 0 и т. Д.

1 Ответ

0 голосов
/ 26 февраля 2019

Обычно для фильтрации по «последним цифрам» используется оператор по модулю %, то есть остаток от деления.

Для целых чисел его значение ясно: 123 % 100 = 23, 123 % 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
...