【问题标题】:Merging query from same table into different columns将同一表中的查询合并到不同的列中
【发布时间】:2020-04-21 22:09:14
【问题描述】:

我在查询表以获取某些信息时遇到问题。基本上数据存储在表中的方式,对于每个客户,其信息是垂直存储的,等等。

在我的情况下,我想在单独的列中显示,例如,仅在每个 CustomerId 的所有信息中显示 'Company''StreetAddress' 值。

我尝试了联接、联合和枢轴,但我的 sql 技能仍然有限。这是原始表格的样子:

【问题讨论】:

  • 请用您正在使用的数据库标记您的问题:mysql、oracle、sql-server...?

标签: sql group-by pivot


【解决方案1】:

您可以使用条件聚合进行透视。如果您希望结果集中包含客户 ID、公司和街道地址的三列,您可以这样做:

select
    customerid,
    max(case when key = 'Company' then value end) company,
    max(case when key = 'StreetAddress' then value end) street_address
from mytable
group by customerid

【讨论】:

    猜你喜欢
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-12
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多