hive 仅下载具有特定值的行的SQL函数

wwodge7n  于 2023-01-17  发布在  Hive
关注(0)|答案(1)|浏览(91)

我有不同活动的重复ID。返回所有ID,但删除重复项,并返回三个名为email、phone call和appointment的新列,如果活动为(email(用于email列)、phone call(用于phone列)、appointment(用于appointment列)),则返回true,否则返回false。
"我所拥有的"
| 识别号|活动|
| - ------|- ------|
| 一百零一|电子邮件|
| 一百零一|任命|
| 一百零二|战役|
| 一百零三|电话|
| 一百零四|任命|

SELECT id,

MAX(CASE WHEN activity='Phone Call' THEN TRUE ELSE FALSE END) AS PhoneCall, 
MAX(CASE WHEN activity='Appointment' THEN TRUE ELSE FALSE END) AS Appointment,
MAX(CASE WHEN activity='Email' THEN TRUE ELSE FALSE END) AS Email

| 一百零四|战役|
"我想要的"
| 识别号|电子邮件|任命|电话|
| - ------|- ------|- ------|- ------|
| 一百零一|真的|真的|假|
| 一百零二|假|假|假|
| 一百零三|假|假|蒂雷|
| 一百零四|假|蒂雷|假|

z9zf31ra

z9zf31ra1#

这应该是你要找的

SELECT id, MAX(CASE WHEN activity='Email' THEN 'True' ELSE 'False' END) AS Email, MAX(CASE WHEN activity='Appointment' THEN 'True' ELSE 'False' END) AS Appointment, MAX(CASE WHEN activity='Phone Call' THEN 'True' ELSE 'False' END) AS 'Phone Call' FROM {your_table_name} GROUP BY id;

相关问题