SQL如何计算一行中的特定值的数量

时间:2014-08-13 11:10:23

标签: sql

假设我有一张包含50个字段的表格。其中20个字段可以包含值" YES" " NO"或" N / A"。如何查询给定行的" YES"的数量?

1 个答案:

答案 0 :(得分:7)

你写了一个长语句,它将值加起来:

select ((case when value1 = 'Yes' then 1 else 0 end) +
        (case when value2 = 'Yes' then 1 else 0 end) +
        . . .
        (case when value50 = 'Yes' then 1 else 0 end)
       ) as NumYesses

如果对数据进行规范化,这将更加容易,因此每个值都在一个单独的行中。你可以通过一个单独的表来实现,称为联结或关联表。

此外,您可以使用列名称上的公式(或通过编写使用数据库中元数据的查询)在电子表格(如Excel)中生成此代码。

注意:这是通用的ANSI SQL,因为您没有指定数据库。在不同的数据库中编写代码可能有一些捷径。