微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将行转换为同一表中的列并从表中删除该行

如何解决将行转换为同一表中的列并从表中删除该行

如何通过将匹配的行转换为同一表中的列并从表中删除行来从表中选择行。有 4 个帐号(100,200,111,222),其中帐号 100 与 111 相关联,帐号 200 与 222 相关联。这里每个公司帐户(200)与姊妹公司帐户(222)相关联。请参阅下图原始表格和预期的结果。可能有没有关联公司的行。最终结果应该是,如果公司有关联的行,它们需要转换为一行中的列和单独的行。我尝试使用 Pivot 但无法实现结果。任何建议都可以帮助

Table structure and expected result

解决方法

您可以使用自连接和解析函数如下:

Select * from
(Select t.comapny,t.acct,t.amount,S.comapny as company_1,s.acct as acct_1,s.amount as amount_1,Row_number() 
         over (partition by least(t.comapny,s.comapny) order by t.amount) as rn
  From your_table t
  Left join your_table s on t.sister_company = s.company) t
Where rn = 1

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。