Округление числа в SQL Oracle путем простого сопоставления до первых двух десятичных значений - PullRequest
1 голос
/ 02 октября 2019

Я пытаюсь сгруппировать вещи, основываясь на округлении цены, если прямое совпадение до 2-го знака после запятой. Таким образом, 16,49 следует сгруппировать с 16,4991 и количеством (которое всегда будет идеально совпадать). Это не всегда будет работать, чтобы округлить вверх или вниз. Разве раунд не лучший способ приблизиться к чему-то подобному? Если бы кто-то мог указать мне в лучшем направлении.

PRICE   QUANTITY
16.49   1460
16.4991 1460
15.63   38638
15.6352 38638

1 Ответ

1 голос
/ 02 октября 2019

Используйте trunc вместо округления, как @a_horse_with_no_name, предложенное в комментариях

with tbl as (
  select 16.49 price,   1460 quantity from dual union all
  select 16.4991, 1460 from dual union all
  select 15.63,   38638 from dual union all
  select 15.6352, 38638 from dual
 )
 select trunc(price, 2), quantity, count(*)
   from tbl
  group by trunc(price, 2), quantity
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...