ここでSQLコミュニティに挑戦したいと思います。SQLチャレンジ:SQLクエリがNULLに従ってグループ化しない理由
create table A
(
a_id integer unique,
code int
);
create table B
(
a_id integer foreign key references A(a_id),
b_count int
);
insert into A values (1, 20);
insert into A values (3, 30);
insert into A values (null, 30);
insert into B values (1, 100);
insert into B values (1, 120);
insert into B values (null, 200);
select A.a_id, sum(B.b_count) Bsum
from A
left join B on A.a_id = B.a_id
group by A.a_id
なぜ、SQLクエリでNULLの値が合計されないのですか?言い換えれば、なぜ我々は
a_id Bsum
---------------
NULL NULL
1 220
3 NULL
代わりの
a_id Bsum
---------------
NULL 200
1 220
3 NULL
[記事](https://technet.microsoft.com/en-us/library/ms191504(V = SQL.105).aspxの) 'NULL'値について。それはグループ化されていない理由を理解するのに役立ちます。 – Rokuto
on節とnulliff(A.a_id、-1)のisnull(A.a_id、-1)= isnull(B.a_id、-1)にA.a_id = B.a_idの左結合Bを変更し、あなたはそれを得るでしょう。 NULL上では、NULLは他のNULLと等しくなくてはなりません。 – sepupic
課題:次のクエリの結果はどうなると思いますか? 'nullをヌルにしてから '確かに' else 'をノーエンドとします。 – LukStorms