将行的总和计算到列中
Calculating sum of row into a column
我有点困惑,为什么我的号码不相加,但它们似乎只是堆叠在一起。我做了一些研究并试图将我的数据转化为数字,但似乎没有给我想要的结果。有任何想法吗?
图片提供的是我执行时的结果示例。 Other是Table中的数据。
[女士 SQL 2019]
Result1
Table Data
--这是我到目前为止想出的(注意:我还有更多的列要添加到 100+)--
select PartNumber, sum(cast(a01b + a02a as int))
as total
from bincount
group by PartNumber
Mysql查询-计算文件id数
select file_id ,
count(ID)
from table
group by file_id
ORDER BY ID DESC limit 30;
您需要检查两列的数据类型,以及它们是否可以为空,因为 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 returns NULL 而不是 0); COALESCE 解决了这种边缘情况。如果您确定每一列中至少有一个非 NULL,则可以不使用 COALESCE。
我有点困惑,为什么我的号码不相加,但它们似乎只是堆叠在一起。我做了一些研究并试图将我的数据转化为数字,但似乎没有给我想要的结果。有任何想法吗? 图片提供的是我执行时的结果示例。 Other是Table中的数据。 [女士 SQL 2019]
Result1 Table Data
--这是我到目前为止想出的(注意:我还有更多的列要添加到 100+)--
select PartNumber, sum(cast(a01b + a02a as int))
as total
from bincount
group by PartNumber
Mysql查询-计算文件id数
select file_id ,
count(ID)
from table
group by file_id
ORDER BY ID DESC limit 30;
您需要检查两列的数据类型,以及它们是否可以为空,因为 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 returns NULL 而不是 0); COALESCE 解决了这种边缘情况。如果您确定每一列中至少有一个非 NULL,则可以不使用 COALESCE。