首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算多行并将其卷到新列。

计算多行并将其卷到新列。
EN

Stack Overflow用户
提问于 2018-10-12 17:11:13
回答 1查看 33关注 0票数 0

我试图计算列中的值,以确定每个行子集的值。更容易解释..。

代码语言:javascript
复制
select distinct
    app_id,
    asset_id,
    asset_migration_scope
from
    table

下面是输出的一个示例:

代码语言:javascript
复制
app_ID   asset_id   asset_migration_scope

123      asset1     Migrating

123      asset2     Migrating

123      asset3     Not Migrating

456      asset1     Migrating

456      asset2     Migrating

789      asset1     Not Migrating

789      asset2     Not Migrating

我想做的是创建第四列来卷起这些内容。如果给定应用程序ID的所有资产=迁移,则该应用程序ID的每一行的值都将迁移。如果它是迁移/不迁移的混合体,我们称之为混合迁移。所有的“不迁移”,都是“不迁移”

产出如下:

代码语言:javascript
复制
app_ID   asset_id   asset_migration_scope    app_migration_scope

123      asset1     Migrating                Hybrid

123      asset2     Migrating                Hybrid

123      asset3     Not Migrating            Hybrid

456      asset1     Migrating                Migrating

456      asset2     Migrating                Migrating

789      asset1     Not Migrating            Not Migrating

789      asset2     Not Migrating            Not Migrating

我如何才能这样做呢?这样我们就可以查看每个app_id + asset_id与相应的asset_migration_scope值的组合,从而确定基于app_id的app_migration_scope列的单个值。

非常感谢,提前!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-12 17:26:31

您可以在聚合中使用case表达式:

代码语言:javascript
复制
SELECT t.app_id, t.asset_id, t.asset_migration_scope,
       (CASE WHEN mn_scope <> mx_scope 
             THEN 'Hybrid' 
             WHEN (mn_scope = mx_scope AND mn_scope = 'Migrating')
             THEN 'Migrating'
             WHEN (mn_scope = mx_scope AND mn_scope = 'Not Migrating')
             THEN 'Not Migrating'
        END) AS app_migration_scope 
FROM table t CROSS APPLY
     (SELECT MIN(t1.asset_migration_scope) AS mn_scope, MAX(t1.asset_migration_scope) AS mx_scope
      FROM table t1
      WHERE t1.app_ID = t.app_ID
     ) t1;

但是,DISTINCT将被克服,因为您的示例数据并不建议我使用DISTINCT

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52784170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档