【发布时间】:2022-12-13 03:55:04
【问题描述】:
我认为这是一个非常基本的问题,但我找不到如何在 SQL Server 中执行此操作的答案。 我有一张桌子:
| ID | Pref_01 | Pref_02 | ... | Pref_40 |
|---|---|---|---|---|
| 01 | 5 | 2 | ... | 7 |
| 02 | 6 | 7 | ... | 5 |
我希望我的输出包含两列:ID、Sum_pref 以及以“pref”命名星星的列的总和。我知道如何在 R 或 SAS 中的 SQL 中执行此操作,但现在我必须在 SQL Server 中执行此操作,但我被卡住了。如果有任何帮助,我将不胜感激。
【问题讨论】:
-
一种方法是取消数据透视,然后
SUM它。另一种是简单地使用基本加法:Pref01 + Pref02 + ... + Pref_40。我怀疑您实际拥有的是这里的非规范化设计。 -
基本添加不是解决方案。在原始数据中,我有更多的列和不同的前缀,所以这对很多工作来说都是如此。我在 SAS 中寻找类似 sum(of Prefix:) 的东西
-
没有这样的功能。如果您想使用
SUM,您需要先对数据进行逆透视,然后再对列进行SUM。 -
这很糟糕 :(。您能否提供一个示例,说明如何使用 unpivot 执行此操作?
-
什么不好?还有很多,例如:Unpivot with column name
标签: sql sql-server