如何计算所有列?

问题描述 投票:0回答:2

对 SQL 完全陌生,所以很抱歉,如果这是基本的,但是虽然我可以找到一篇又一篇文章解释如何计算单个列,但我找不到解释如何计算包含特定文本的所有列/单元格的文章。

我有一个表,其中包含 3n0+ 员工姓名作为列标题。这些列包含出勤、员工 ID 和出勤日志,因此每列包含一个

1 = 现在 0 = 缺席

I;d 就像一个查询,它将计算每列中的所有 1(不包括第 1 列,因为这是员工代码)并返回结果(所有 1 的总和/计数)并使用以下命令返回每列的结果标题(员工姓名。)

即我的桌子看起来像:

凯特 彼得 莎莉
1 1 0 1
0 0 3 1
1 0 0 1
1 0 1 1
1 1 1 1

我想要的结果是:

BEN: 4
Kate: 2
Peter: 3
Sally: 5
sql count
2个回答
0
投票

我同意你糟糕的数据库设计,如果可能的话你应该重新设计它。如果不是,您可以使用 UNPIVOT 模式。您没有按 RDBMS 版本标记您的问题,所以我将提供 MS SQL 示例:

SELECT Employee, Cnt
FROM
(
  SELECT 
      SUM(Emp1) Emp1, SUM(Emp2) Emp2, SUM(Emp3) Emp3
 FROM T
) p
UNPIVOT
(
  Cnt for Employee IN
  (Emp1, Emp2, Emp3)
) AS upvt;

现场测试


0
投票

您可以只使用 sum 函数

select employeeId,
  sum(Ben),
  sum(Kate)
from yourtable;
© www.soinside.com 2019 - 2024. All rights reserved.