Sql 需要根据表中的唯一值将一列分解为多列吗?
请在Excel和SQL/Redshift中帮助我找到合适的方法 假设我有一张像这样的桌子: 我想将第5列分解为该列中唯一值的列,并将第6列的相应值放入行中。基本上,我只需要一行作为唯一的[column1,column2,column3]对。因此,我希望得到如下结果:Sql 需要根据表中的唯一值将一列分解为多列吗?,sql,excel,pivot,amazon-redshift,Sql,Excel,Pivot,Amazon Redshift,请在Excel和SQL/Redshift中帮助我找到合适的方法 假设我有一张像这样的桌子: 我想将第5列分解为该列中唯一值的列,并将第6列的相应值放入行中。基本上,我只需要一行作为唯一的[column1,column2,column3]对。因此,我希望得到如下结果: 实现这一点的简单SQL方法是将MAX()与CASE一起使用 SELECT column1, column2, column3, column4, MAX(CASE WHEN column5 = 'val1' T
实现这一点的简单SQL方法是将
MAX()
与CASE
一起使用
SELECT
column1,
column2,
column3,
column4,
MAX(CASE WHEN column5 = 'val1' THEN column6 END) AS val1,
MAX(CASE WHEN column5 = 'val2' THEN column6 END) AS val2,
MAX(CASE WHEN column5 = 'val3' THEN column6 END) AS val3
FROM
yourTable
GROUP BY
column1,
column2,
column3,
column4
在CASE
表达式中,如果第5列不匹配,则CASE
的结果隐式为NULL
然后,在MAX()
这会导致组合选择列6
的最大值,其中列5
为val1
/val2
/val3
。假设只有一个这样的匹配,它会选择一个匹配值。请不要链接到数据的图像。请将数据复制到您的问题中,并使用降价控件对其进行格式化。通过这种方式,我们可以在问题的上下文中看到数据,输入和输出相邻,并在必要时将数据复制到应用程序(如SQLFIDLE)中。另外,您是在Excel中还是在红移中执行此操作?