我有點困惑為什么我的號碼不相加,但它們似乎只是堆疊在一起。我做了一些研究并試圖將我的資料轉換為數字,但似乎沒有給我想要的結果。有任何想法嗎?圖片提供的是我執行時的結果示例。另一個是表中的資料。[MS SQL 2019]
結果1 表資料
--這是我目前想到的(注意:我有更多的列要添加到 100 )--
select PartNumber, sum(cast(a01b a02a as int))
as total
from bincount
group by PartNumber
uj5u.com熱心網友回復:
您需要檢查兩列的資料型別,以及它們是否可以為空,因為NULL 17會給您 NULL,而不是 17。
將許多包含 NULL 的行相加,總和將比您預期的要少。
您可能被迫使用COALESCE進行撰寫
SELECT SUM(
COALESCE(a20a, 0) COALESCE(a20b, 0)
) AS total
或者,但這應該不是必要的,
COALESCE(CAST(a20a AS INT), 0) COALESCE(CAST(a20b AS INT), 0)
或者您可以在 之后添加SUM,這樣會更快:
SELECT COALESCE(SUM(a20a),0) COALESCE(SUM(a20b),0)
現在 NULL 值將被忽略(NULL 5 10 是 NULL,但 SUM(5, NULL, 10) 是 15),除非整列完全由 NULL 組成(在這種情況下,SUM 回傳 NULL 而不是 0) ; COALESCE 解決了這種邊緣情況。如果您確定每一列中至少有一個非 NULL,則可以不用 COALESCE。
uj5u.com熱心網友回復:
Mysql查詢-計算檔案id計數
select file_id ,
count(ID)
from table
group by file_id
ORDER BY ID DESC limit 30;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/347376.html
標籤:sql-server 铸件 和
