带空字符串的oracle sql分组依据
我应该用空字符串将列表分组。这里有两个例子,没有空字符串的ohne工作正常,而有空字符串的ohne不工作。 有什么想法吗带空字符串的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
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>