聚合为'多于一个'所有人都有多个PER_ID

时间:2016-05-23 16:38:36

标签: sql aggregate-functions db2-luw

结果:

  • PER_ID,PER_FIRST_NAME,PER_LAST_NAME,RACE
  • 814,LeBron,James,Black or African American
  • 211,马努,吉诺比利,阿根廷
  • 211,马努,吉诺比利,白
  • 274,德克,德克,德国
  • 274,德克,德克,白
  • 040,Jeremy Lin,亚洲人

期望的结果:

  • PER_ID,PER_FIRST_NAME,PER_LAST_NAME,RACE
  • 814,LeBron,James,Black or African American
  • 211,Manu,Ginobili,不止一个
  • 274,Dirk,Nowitzki,不止一个
  • 040,Jeremy Lin,亚洲人

随着这一切四处走动。需要将RACE汇总为'More Than One',并将其RACEPER_ID per_id汇总为per_id

如果 select pr.per_id, count(*) from schema1.person_race pr group by pr.per_id = 2,此代码会显示两列,不同{{1}}和计数为2.

{{1}}

未成功尝试过几个其他功能来过滤包括案例和总和(案例。有任何想法吗?

2 个答案:

答案 0 :(得分:2)

这样的事情,可能是吗?

select 
  PER_ID, PER_FIRST_NAME, PER_LAST_NAME, 
  case CNT when 1 then RACE else 'More Than One' end RACE
from (
  select PER_ID, PER_FIRST_NAME, PER_LAST_NAME, max(RACE) RACE, count(1) CNT 
  from schema1.person_race
  group by PER_ID, PER_FIRST_NAME, PER_LAST_NAME
) t

答案 1 :(得分:0)

在我看来,您正在混合数据值。那就是我要为"原产国"创建一个新专栏。与#34; Race"分开柱。这将导致Ginobili和Nowitzki在输出中占一排。