当前位置: 首页 > 面试题库 >

teradata sql将多次出现的数据透视到其他列中

孟胤
2023-03-14
问题内容

我有这样的事情:

ID      Result
1       value1
2       value1
2       value2
3       value1
4       value1
4       value2
4       value3

我想返回这样的内容:

ID      Result1      Result2      Result3
1       value1
2       value1       value2
3       value1
4       value1       value2       value3

我已经搜索过关键点,连贯点和中断点,但我找不到简单,明智的解决方案。

TIA


问题答案:

不幸的是,Teradata没有PIVOT函数,但是您可以将聚合函数与CASE表达式一起使用以获取结果。

select id,
    max(case when seq =1 then result end) result1,
    max(case when seq =2 then result end) result2,
    max(case when seq =3 then result end) result3
from
(
    select id, res, row_number() over(partition by id order by result) seq
    from yourtable
) d
group by id
order by id;

如果每个ID都有更多值,则可以添加更多CASE表达式。



 类似资料:
  • 我正在尝试保存数据透视表中多列的数据。但是,数据没有保存。下面是我正在做的事情: 表 刀片 如果我只使用checkbox来同步benefit_id和user_id,它就能工作。但如果添加额外的数据amount1和amount2,则不起作用。 控制器 事先谢谢你的帮助。

  • 我想枢轴的数据帧像: 进入具有如下分层列的数据帧: 我尝试了,但它只会给我一个这样的框架: 如何更改列的层次结构?

  • 我有2张桌子。一个有用户,一个有位置。我创建了一个名为user_locations的数据透视表。一个用户可以有一个或多个位置。一个位置可以属于一个或多个用户。所以我在这些桌子上有多对多的关系。我已经从laravel上读到过附加方法,但我不太确定如何使用它。 在“我的用户和位置”表中,我有一个id,该id在“用户id”和“位置id”下进入我的透视表。 目前我遇到了两个问题。In Location::

  • 我对Python和熊猫相当陌生,有一个问题我不太确定如何解决。我有一个熊猫DataFrame,其中包含在同一年为多支球队效力的曲棍球运动员: 我希望能够合并包含同一年的同一名球员的行,并按球员为其效力最多的球队排列列。在上面的例子中,B队的所有数字都是第一位的,因为球员A为B队打了最多的比赛,其次是A队,然后是C队。如果一名球员没有为多个队打过球或少于三个队打过球,我希望在给定的列中填写NA。 例

  • 问题内容: 我将重点放在关键值对上,以便与另一台服务器上的值进行比较以进行一致性测试。我遇到了一个返回错误的问题。 Msg 8167,第16级,状态1,第51行 列“类型”的类型与UNPIVOT列表中指定的其他列的类型冲突。 询问: 为什么这样不喜欢,,??? 我也尝试过 问题答案: 这实际上是整理问题。我可以通过更改以下行来解决: 特定的问题是整理为,而您提到的其他3列则整理为(至少,在我的机器

  • 问题内容: 我试图将结果行转换为列,但仅使用位值。为了更好地解释我的意思,我的桌子看起来像这样; 我想要实现的是这样的布局; 抱歉我的格式不正确,但希望它能传达我想要的内容。我已经尝试过Pivot,但是我没有什么可总结的,因为我只想要true / false值而不是总和。 另外,我大约有15列,我不介意静态地将它们写出来。任何指针将不胜感激! 问题答案: 这种方法将解决此问题: 结果是: 其中1为