SQL Server 데이터베이스의 데이터에서 그래프를 만들려고합니다. 나는이 거리에 살고있는 사용자의 수를 가진 모든 거리를 가질 것입니다.
이를 위해이 쿼리를 시도했습니다.
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
그리고 그것은 나 에게이 출력을 제공합니다 :
| | street | count |
| - | ---------- | ----- |
| 1 | 1st street | 2 |
| 2 | 2nd street | 5 |
| 3 | 3rd street | 2 |
| 4 | 4th street | 1 |
문제는 사용자가없는 5 번가가 결과에 나타나지 않는다는 것입니다. SQL 서버에서이 작업을 수행 할 수 있습니까? 여기에 바이올린이 있습니다.
업데이트 : 내가하면 right join
다음 결과가 나타납니다.
| | street | count |
| - | ---------- | ----- |
| 1 | 1st street | 2 |
| 2 | 2nd street | 5 |
| 3 | 3rd street | 2 |
| 4 | 4th street | 1 |
| 5 | 5th street | 1 |
때문에
—
SqlWorldWide
right join
와 right outer join
같은 것들입니다. @ jpmc26에서 제안한대로 답변에 설명을 추가했습니다.
COUNT(u.streetid)