Hive中的decimal類型用于精確的十進制數計算
CREATE TABLE example_table (
id INT,
amount DECIMAL(10, 2)
);
這里,我們創建了一個名為example_table的表,其中有一個名為amount的字段,其類型為decimal(10, 2),表示最多可以有10位數字,其中2位是小數位。
INSERT INTO example_table (id, amount) VALUES (1, 123.45);
INSERT INTO example_table (id, amount) VALUES (2, 67.89);
在Hive中,可以使用標準的算術運算符(如+,-,*,/)對decimal類型進行計算。例如:
SELECT id, amount, amount + 100 AS new_amount FROM example_table;
這將返回以下結果:
id amount new_amount
1 123.45 223.45
2 67.89 167.89
注意,當使用除法運算符(/)時,結果可能會產生小數。如果需要保留特定的小數位數,可以使用ROUND()函數:
SELECT id, amount, ROUND(amount / 10, 2) AS rounded_amount FROM example_table;
這將返回以下結果:
id amount rounded_amount
1 123.45 12.35
2 67.89 6.79
總之,在Hive中,可以使用標準的算術運算符和ROUND()函數對decimal類型進行計算。只需確保在進行計算時,保留足夠的小數位數以獲得所需的結果精度。