温馨提示:本文翻译自stackoverflow.com,查看原文请点击:sql - Insert values in a table based on entries of other table in Redshift
amazon-redshift amazon-web-services aws-glue sql

sql - 根据Redshift中其他表的条目在表中插入值

发布于 2020-04-25 23:04:52

我在AWS Redshift中有两个表,并且需要根据另一个表的条目将一些值插入到一个表中。我想知道是否可以使用AWS GLUE作业完成任务,如果可以,那是个好主意吗?还是应该使用Redshift中的query-editor / sqlworkbench来完成任务。

  • 表1具有以下架构:
Person(id,firstName,Lastname)
  • 表2具有以下架构
Selection(perId,check)
  • 如果“ 个人”表的“ firstName”串联,则在选择表中插入1,否则将“ 0”与相应的“个人” ID插入。lastName['fullName1', 'fullName2',..]

  • 列表值是: ['JohnLuie' , 'FranklinWatson']

    人桌

    Id   |        Firstname           |   lastName   
    04   |           John             |           Luie
    09   |           Ben              |         Johnson

最初,选择表为空。所以在检查了人表的条件之后

  • (Person.firstName+ Person.lastName) in ['JohnLuie' , 'FranklinWatson] 然后在Selection.perId中插入1或0,并在Selection.perId中插入person.id

因此,执行任务后,选择表将如下所示:

选拔

    PerId      |     check
     04        |        1
     09        |        0

我想知道是否可以通过运行aws-glue作业执行以下任务。两个表都处于红移状态。

查看更多

提问者
Dipayan Som
被浏览
29
John Rotenstein 2020-02-09 14:38

您可以在SQL查询中执行此操作,例如:

INSERT INTO Selection
(
    SELECT
      Id,
      CASE WHEN firstName || lastName IN ['JohnLuie' , 'FranklinWatson] THEN 1 ELSE 0 END
    FROM person
)