sql server - SQL Challenge: Why SQL query does not group according to NULL -
i challenge sql community here. let have following data , sql query:
create table ( a_id integer unique, code int ); create table b ( a_id integer foreign key references a(a_id), b_count int ); insert values (1, 20); insert values (3, 30); insert values (null, 30); insert b values (1, 100); insert b values (1, 120); insert b values (null, 200); select a.a_id, sum(b.b_count) bsum left join b on a.a_id = b.a_id group a.a_id why doesn't sql query sum value null? in other words, why get
a_id bsum --------------- null null 1 220 3 null instead of
a_id bsum --------------- null 200 1 220 3 null
this has nothing sum(). reason left join , way null works comparisons. query:
select a.a_id, sum(b.b_count) bsum left join b on a.a_id = b.a_id group a.a_id; on rows a_id null, = evaluates null -- not true. seem want is:
select a.a_id, sum(b.b_count) bsum left join b on a.a_id = b.a_id or (a.a_id null , b.a_id null) group a.a_id;
Comments
Post a Comment