问题标签 [unpivot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3031 浏览

tsql - T-SQL VIEW - CTE + UNPIVOT 与 UNION 与其他技术

我想知道哪种解决方案更好。我必须在视图中声明一些变量,这些变量是使用 T-SQL 日期函数(DATEADD、DATEPART、GETDATE() 等)计算的。

经过一番研究,我写了这个:

它看起来很酷,因为我有“cte”和“unpivot”。如果我想添加其他日期变量,我只应该在 CTE 的选择中插入。

另一种解决方案是使用普通的“联合”:

我认为这不太好,因为新的日期变量意味着新的联合,但毕竟只有少数变量之间的联合。

谁能告诉我在这种情况下哪种技术是好的做法,甚至提供其他解决方案?

提前致谢。

编辑:

这是我想要的输出:

0 投票
3 回答
13762 浏览

sql - 具有多列和动态列名的反透视表

我正在尝试取消透视具有多行和多列的表。每行需要提取到具有特定列的 2 行,列名需要重命名,并且需要根据所选列添加新列!

我包括之前和之后的示例数据和设置数据的脚本。

我已经尝试过了,但我无法通过第二列,我不确定如何添加带有特定文本的新列,(可能是动态 sql,但如果可能的话尽量避免这种情况)

这是我尝试的开始,任何帮助将不胜感激。

0 投票
2 回答
167 浏览

sql-server-2005 - 在 SQL Server 中组合没有公共元素(枢轴)的列

我试图找到显示一些数据的最佳方式。

我的数据集如下所示:

我试图弄清楚我将如何显示这样的数据:

我相信我将不得不使用数据透视表,但不知道从哪里开始。

谢谢你,布拉德

0 投票
1 回答
429 浏览

sql - TSQL 从函数/过程中选择没有第一个 n 的所有列

我知道这可能听起来很傻,但我想创建一个函数来处理来自不同大小的表的数据。

可以说我有这样的第一张桌子:

第二张桌子是这样的:

我想创建能够处理两个表中的数据的函数。

我知道第一列包含 ID,第二列 IRR,其余列将保留特定月份的现金流。

函数应该能够处理所有列而不是前 2 列并将结果存储在第二列中。

我知道我可以从特定表中获取所有列:

当我想创建将这些列作为行返回的函数时,问题就开始了。

我可以像这样创建函数:

但是这个函数应该怎么看?

我认为这种处理表的理想应该是这样的:

我需要在不知道列数的情况下取消透视整个表。


编辑: 如果这不能在函数内部完成,那么可能在一个过程中?

0 投票
3 回答
9399 浏览

sql - 转置没有聚合的行和列

我有以下数据集

我想输出如下:

问题还在于我有不固定数量的客户(Field1)和不固定数量的日期。

0 投票
3 回答
723 浏览

sql - SQL如何从汇总表创建明细表

现在我有一个这样的游戏摘要表:

汇总表

我想按小时拆分“开始时间”和“结束时间”并将其转换为以下详细外观:

我需要这个

它有点类似于 Unpivot,但不完全相同。sql语句应该怎么写?非常感谢!

0 投票
2 回答
324 浏览

sql - T-sql 数据透视函数

我需要转换下表

进入这个。有没有简单的方法来实现它?

0 投票
2 回答
1033 浏览

sql - 将 1000 列旋转/旋转为行

我继承了一个数据库,我需要从中提取当前按行排列的列中的数据。检索数据的查询是:

产生

请注意,有 1000 列 (P0001...P1000)

我想旋转/旋转数据,以便获得以下输出:

如何构建 SQL 查询?数据库是 SQL 2000。

我已经尝试了多种方法来解决这个问题。我最近的尝试是:

但我得到的错误是:

0 投票
1 回答
25597 浏览

sql - SQL查询;水平到垂直

我坚持使用涉及将水平行转换为垂直行的 SQL 查询(SQL Server)

下面是我的数据

转换后,表格应该是

对此有任何意见会有帮助吗?

ROW_NUMBER我正在尝试在分区上玩耍。但它不工作!

谢谢 !!!

0 投票
2 回答
1822 浏览

sql - SQL:将一行变成一列(并在新列中包含列名)

我正忙于编写要在安全令牌服务中使用的声明提供程序类。

用户权限从 SQL Server 2008 R2 数据库中读取:

会给我一行,例如:

以表格形式拥有这些数据会容易得多

由于实际的表包含几十列,我希望能够“动态地”进行换位,而不必真正手动输入任何列名。

感觉就像 PIVOT/UNPIVOT 函数和 INFORMATION_SCHEMA.COLUMNS 视图是我需要的,但我不知道该怎么做。

对可以执行此操作的查询有任何想法吗?

PS。我想如果推送到了,我只需将结果集粘贴在 DataTable 中并遍历代码中的列以生成用户声明,但我想先了解上述方法是否可行 :)