PICO_NUM_PRETTY¶
Скалярная функция PICO_NUM_PRETTY преобразует число в короткую строку
с суффиксом k, M, G, T, P, E, Z или Y. Каждый следующий
суффикс в 1000 раз больше предыдущего.
Функция является строгой.
Синтаксис¶
Правила¶
- Число, модуль которого меньше 1000, выводится как есть, в том числе
дробное число типа
DECIMAL, например1.25. У большего дробного числа функция отбрасывает дробную часть. - Для большего числа функция выбирает суффикс, при котором целая часть
содержит от одной до трех цифр, и выводит три первые цифры числа.
Если целая часть короче трех цифр, после нее ставится точка:
1.23k,12.3k,123k. - Остальные цифры отбрасываются без округления:
9999выводится как9.99k. Три выведенные цифры удерживают относительную погрешность ниже 1%. Так как цифры не округляются, результат никогда не больше самого числа, а выведенные цифры — это его первые цифры. - Между числом и суффиксом нет пробела.
- Для чисел от 1000Y целая часть содержит больше трех цифр, например
1000Y. - Отрицательное число выводится со знаком минус.
- Результат имеет тип
TEXT.
Примеры¶
SELECT
pico_num_pretty(999),
pico_num_pretty(9999),
pico_num_pretty(1234567),
pico_num_pretty(-12345);
Результат
+-------+-------+-------+--------+
| col_1 | col_2 | col_3 | col_4 |
+================================+
| 999 | 9.99k | 1.23M | -12.3k |
+-------+-------+-------+--------+