带空字符串的oracle sql分组依据

带空字符串的oracle sql分组依据,sql,oracle,Sql,Oracle,我应该用空字符串将列表分组。这里有两个例子,没有空字符串的ohne工作正常,而有空字符串的ohne不工作。 有什么想法吗 Works well ============== Name Bewertung Leistung --------------------------------------- Jagger 234'234 <Null> Jagger <Null> 100'000 select Name, sum(B

我应该用空字符串将列表分组。这里有两个例子,没有空字符串的ohne工作正常,而有空字符串的ohne不工作。 有什么想法吗

Works well
==============
Name    Bewertung   Leistung        
---------------------------------------
Jagger  234'234     <Null>
Jagger  <Null>      100'000

select Name, sum(Bewertung), sum(Leistung) from Stars
  group by Name

Name    Bewertung   Leistung        
---------------------------------------
Jagger  234'234     100'000


__/__/__/__/__/__/__/__/__/__/__/__/
Don't work
============
Name    Bewertung   WHRB    Leistung    WHRL
-------------------------------------------------------
Jagger  234'234     GBP     <Null>      <Null>
Jagger  <Null>      <Null>  100'000     GBP
Jagger  <Null>      <Null>   50'000     GBP

select Name, sum(Bewertung), WHRB, sum(Leistung), WHRL
  group by Name, WHRB, WHRL

Name    Bewertung   WHRB    Leistung    WHRL
-------------------------------------------------------
Jagger  234'234     GBP     <Null>      <Null>
Jagger  <Null>      <Null>  150'000     GBP

不确定您是否想要这样的内容,因为您没有发布预期的输出:

   select Name, WHRB, WHRL,sum(Bewertung), sum(Leistung)
      group by nvl(Name, rownum),Name nvl(WHRB, WHRB),WHRB, nvl(WHRL, rownum),WHRL
也可以通过聚合WHRB、WHRL列忽略空值:

   select Name, sum(WHRB), sum(WHRL),sum(Bewertung), sum(Leistung)
      group by Name;

一个选项是聚合这两列,例如,使用MAX:


另一个解决方案是创建两个具有唯一值的子查询

挑选* 从…起 选择名称、Bewertung、WHRB 来自星星 其中WHRB不为空 A. 完全联接 选择名称、Leistung、WHRL 来自星星 其中WHRL不为null b使用名称
预期的输出是什么?我在我的表中添加了第二个“Leistung”,它可以很好地处理这个问题。我还添加了第二个“WHRL”,并将其与一个sum进行了整合,它也可以工作。谢谢你!对不起,不适用于我现在添加到上面表格的整个请求。当我有多个“雷童”时,我需要总数。梅:我的第一个要求不够清楚。不过还是要谢谢你!嗯,当你没有提供足够的信息时就会发生这种情况:没问题,我很高兴你得到了答案。
SQL> with stars (name, bewertung, whrb, leistung, whrl) as
  2    (select 'Jagger', 234234, 'GBP', to_number(null), to_char(null) from dual union all
  3     select 'Jagger', null, null, 100000, 'GBP' from dual
  4    )
  5  select name, sum(bewertung), max(whrb), sum(leistung), max(whrl)
  6  from stars
  7  group by name;

NAME   SUM(BEWERTUNG) MAX SUM(LEISTUNG) MAX
------ -------------- --- ------------- ---
Jagger         234234 GBP        100000 GBP

SQL>