HiveQL эквивалент MySQL TRUNCATE ()? - PullRequest
0 голосов
/ 07 февраля 2020

Что такое HiveQL эквивалент MySQL TRUNCATE()?

В MySQL:

mysql> SELECT TRUNCATE(2.465, 1);
+-------------------+
| TRUNCATE(2.465,1) |
+-------------------+
|               2.4 | 
+-------------------+

Я знаю только о ROUND() HiveQL, однако я не хотите, чтобы происходило какое-либо округление.

Ссылка: https://www.w3resource.com/mysql/mathematical-functions/mysql-truncate-function.php

Ответы [ 2 ]

0 голосов
/ 09 февраля 2020

Использование regexp_extract:

select regexp_extract(2.456,'\\d+\\.?\\d?',0)

Результат:

2.4

\\d+ означает одну или несколько цифр, \\.? означает ноль или одну точку, \\d? означает ноль или one di git

Вы можете добавить также знак - в начале регулярного выражения: -?

Результат имеет тип String. При необходимости вы можете разыграть на плаву:

select cast(regexp_extract(2.456,'\\d+\\.?\\d?',0) as float)
0 голосов
/ 08 февраля 2020

Может быть немного запутанным, но:

floor(2.465 * 10) / 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...