簡體   English   中英

SQL-1.將差異四舍五入到小數點后兩位

[英]SQL - 1. Round the difference to 2 decimal places

我正在嘗試在SELECT屬性列表中創建一個帶有子查詢的SQL語句,以顯示產品ID,當前價格以及當前價格和總體平均值之間的差。

我知道使用ROUND函數會將差異四舍五入到小數點后零,但我想將差異四舍五入到小數點后兩位。

SELECT p_code, p_price, ROUND(p_price - (SELECT AVG(p_price) FROM product)) AS "Difference" 
FROM product;

我嘗試使用CAST,但它仍然給我相同的輸出。

SELECT p_code, p_price, CAST(ROUND(p_price - (SELECT AVG(p_price) FROM Lab6_Product)) as numeric(10,2)) AS "Difference" 
FROM lab6_product;

預先感謝您的時間和幫助!

round()需要第二個參數:

SELECT p_code, p_price,
       ROUND(p_price - AVG(p_price) OVER (), 2) AS "Difference"
FROM product;

請注意,我還將子查詢更改為窗口函數。

我通常建議將其轉換為numberdecimal / numeric ):

SELECT p_code, p_price,
       cast(p_price - AVG(p_price) OVER () as number(10, 2)) AS "Difference"
FROM product;

這樣可以確保同時顯示兩個小數點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM