多列条件计数 SQL

2024-04-27

我正在尝试计算连续 4 个单独列中的不同条目,然后对结果求和。

例如,表头看起来类似于:

ID       Col1    Col2    Col3    Col4

每列(保存 ID)可以有一个文本值 W、X、Y 或 Z。列可以有相同的值。

我想做的是找出一种方法来计算列中的每个条目,但每行只计算一次 W、X、Y 和 Z。因此,如果:

ID       Col1    Col2    Col3    Col4
          X        X       Y
          Y        W       X
          Z        Y       Y

结果表将是:

    Value    Count
      W        1
      X        2
      Y        3
      Z        1

任何帮助将不胜感激。


也许我错过了一些东西,但这会这么简单吗:

Select Val, Count(*)
From    (
        Select Id, Col1 As Val From Table1
        Union Select Id, Col2 From Table1
        Union Select Id, Col3 From Table1
        Union Select Id, Col4 From Table1
        ) As Z
Where Z.Val Is Not Null
Group BY Z.Val

没有理由使用Distinct and Union一起作为Union将使结果与众不同。因此,我们需要包含每行的唯一值(Id).

SQL小提琴 http://www.sqlfiddle.com/#!3/68aa3/14(这使用 SQL Server,但相同的语法也适用于 MS Access)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多列条件计数 SQL 的相关文章

随机推荐