Saya akan mencoba membuat grafik dari data dari database SQL server saya. Saya akan memiliki semua jalan dengan jumlah pengguna yang tinggal di jalan ini bahkan hitungannya nol.
Untuk ini, saya sudah mencoba kueri ini:
Create table Streets(
ID int IDENTITY primary key,
Name varchar(100)
);
create table users(
ID int IDENTITY primary key,
Username varchar(100),
StreetID int references Streets(id)
);
insert into streets values ('1st street'), ('2nd street'), ('3rd street'),
('4th street'), ('5th street');
insert into users values ('Pol', 1), ('Doortje', 1), ('Marc', 2), ('Bieke', 2),
('Paulien', 2), ('Fernand', 2), ('Pascal', 2), ('Boma', 3),
('Goedele', 3), ('Xavier', 4);
select s.name as street, count(s.name) as count
from users u inner join streets s on u.streetid = s.id
group by s.name
Dan itu memberi saya hasil ini:
| | street | count |
| - | ---------- | ----- |
| 1 | 1st street | 2 |
| 2 | 2nd street | 5 |
| 3 | 3rd street | 2 |
| 4 | 4th street | 1 |
Masalahnya adalah bahwa jalan ke-5, tempat tidak ada pengguna yang hidup, tidak muncul pada hasilnya. Bisakah saya melakukan ini dengan SQL server? Di sini Anda punya biola
Pembaruan: Jika saya melakukannya right join
, saya mendapatkan hasil ini:
| | street | count |
| - | ---------- | ----- |
| 1 | 1st street | 2 |
| 2 | 2nd street | 5 |
| 3 | 3rd street | 2 |
| 4 | 4th street | 1 |
| 5 | 5th street | 1 |
right join
dan right outer join
merupakan hal yang sama. Saya memang menambahkan penjelasan dalam jawaban saya seperti yang disarankan oleh @ jpmc26.
COUNT(u.streetid)