如何计算SQL中一行中的不同字段

Posted

技术标签:

【中文标题】如何计算SQL中一行中的不同字段【英文标题】:How to count different fields in a row in SQL 【发布时间】:2019-10-16 00:45:56 【问题描述】:

在我的表中,我有一个字段列表,当它们不为 NULL 时,我想计算它们。

例如,这里有一些行和我最后要数的:

| locks | keys | boxes | what_I_want_count |
|   3   |   4  |   5   |     *12*          |
|   2   |   0  |   7   |     *9*           |
|   0   |   0  |   1   |     *1*           |

知道怎么做吗?我正在使用 Postgresql (Redshift)。

【问题讨论】:

NULLs 在该表中的什么位置,您希望他们如何处理? 【参考方案1】:

您可以使用coalesce() 函数然后添加您的列

select coalesce(locks, 0) + coalesce(keys, 0) +  coalesce(boxes, 0) from tableA

【讨论】:

【参考方案2】:

如果所有 3 列的数据类型都是整数或大整数,你可以有下面的查询

从 T1 中选择 locks,keys,boxes,(locks,keys,boxes) 作为 total_count

【讨论】:

以上是关于如何计算SQL中一行中的不同字段的主要内容,如果未能解决你的问题,请参考以下文章

如何计算访问查询中 SQL Server ntext(即备忘录)字段中的字符数?

如何计算给定 csv/psv 混合文本文件中的不同字段?

如何计算 Mongoose/NodeJS 中时间戳字段中的不同日期项?

如何计算 ACF 转发器输出中的总行数

SQL - 计算包含两个不同字段的行数

如何在 SQL Server 中的滑动窗口上聚合(计算不同的项目)?