客户拥有多个帐户

时间:2018-05-08 17:53:59

标签: if-statement hive conditional case

enter image description here我们有一个包含客户帐户的表格。其中一个客户碰巧有多个帐户。

客户表: (格式:customer_ID名称)

  • 101史密斯
  • 102威廉姆斯
  • 103 Martin
  • 104杰克

帐户表 (格式:Account_ID,customer_ID,Account_Type)

  • Account_ID customer_ID Account_Type

  • 201 101 A1

  • 202 101 B1

  • 203 101 C1

  • 301 102 B1

  • 302 102 C1

  • 401 103 A1

  • 402 103 C1

  • 501 104 B1

如果一个客户有多个帐户,我们会根据此订单选择account_type:A1,C1和B1

结果应为:

  • customer_ID Account_Type
  • 101 A1
  • 102 C1
  • 103 A1
  • 104 B1

我写了以下查询: 选择c.customer_ID,case 当Account_Type在('A1','B1''C1')中然后是A1 当Account_Type在(''B1''C1')中然后是C1 否则Account_Type 结束 来自客户c 加入帐户a 在a.customer_ID = c.customer_ID

如何设置条件:一个客户在此查询中有多个帐户?

由于

1 个答案:

答案 0 :(得分:0)

简单的解决方案是

SELECT * FROM ( SELECT *,CASE AccountType WHEN'A1'那么1'当'B1'那么3当'C1'那么2结束时作为Rank1来自testAccount )CustomerID的排序,Rank1