SQL Server에서 쿼리 성능 향상하기
Dean Smith
Founder, Atamai Analytics



Select ps.Team, count(p.PlayerName)
As NonNthAmerPlayers from
PlayerStats ps inner
join (select PlayerName FROM Players
WHERE Country <> 'USA' Or Country
<> 'Canada' )
p on p.PlayerName = ps.PlayerName
group BY ps.Team
having Count(p.PlayerName)
>=24 Order by NonNthAmerPlayers desc
| Team | NonNthAmerPlayers |
|---|---|
| HOU | 24 |
| LAL | 24 |
| MEM | 24 |
| MIL | 24 |
SELECT, FROM, WHERE 등ON 구문AND/OR 조건AS로 별칭을 지정하십시오수정 전
Select ps.Team, count(p.PlayerName)
As NonNthAmerPlayers from
PlayerStats ps inner
join (select PlayerName FROM Players
WHERE Country <> 'USA' Or Country
<> 'Canada' )
p on p.PlayerName = ps.PlayerName
group BY ps.Team
having Count(p.PlayerName)
>=24 Order by NonNthAmerPlayers desc
수정 후
SELECT ps.Team,
COUNT(p.PlayerName) NonNthAmerPlayers
FROM PlayerStats ps
INNER JOIN
(SELECT PlayerName
FROM Players
WHERE Country <> 'USA'
OR Country <> 'Canada' ) p
ON p.PlayerName = ps.PlayerName
GROUP BY ps.Team
HAVING COUNT(p.PlayerName) >=24
ORDER BY NonNthAmerPlayers DESC;
/* 명단에 북미 외 선수 24명 이상이 있는 NBA 팀 목록을 반환합니다. */SELECT ps.Team, COUNT(p.PlayerName) NonNthAmerPlayers FROM PlayerStats ps INNER JOIN (SELECT PlayerName FROM Players WHERE Country <> 'USA' OR Country <> 'Canada' ) p ON p.PlayerName = ps.PlayerName GROUP BY ps.Team HAVING COUNT(p.PlayerName) >=24 ORDER BY NonNthAmerPlayers DESC;
코드나 텍스트의 블록 주석에는 /*와 */를 사용하십시오
/* 명단에 북미 외 선수 24명 이상이 있는 NBA 팀 목록을 반환합니다. */SELECT ps.Team, COUNT(p.PlayerName) NonNthAmerPlayers FROM PlayerStats ps INNER JOIN (SELECT PlayerName FROM Players WHERE Country <> 'USA' OR Country <> 'Canada' ) p ON p.PlayerName = ps.PlayerName GROUP BY ps.Team HAVING COUNT(p.PlayerName) >=24 ORDER BY NonNthAmerPlayers DESC;
코드나 텍스트의 블록 주석에는 /*와 */를 사용하십시오
| Team | NonNthAmerPlayers |
|---|---|
| HOU | 24 |
| LAL | 24 |
| MEM | 24 |
| MIL | 24 |
--는 한 줄의 코드나 텍스트를 주석 처리합니다
SELECT ps.Team,
COUNT(p.PlayerName) NonNthAmerPlayers
FROM PlayerStats ps
INNER JOIN
(SELECT PlayerName
FROM Players
WHERE Country <> 'USA'
OR Country <> 'Canada' ) p
ON p.PlayerName = ps.PlayerName
GROUP BY ps.Team
HAVING COUNT(p.PlayerName) >=24
ORDER BY NonNthAmerPlayers DESC;
--는 한 줄의 코드나 텍스트를 주석 처리합니다
SELECT ps.Team,
COUNT(p.PlayerName) NonNthAmerPlayers -- 선수 수
FROM PlayerStats ps
INNER JOIN
(SELECT PlayerName
FROM Players
WHERE Country <> 'USA'
OR Country <> 'Canada' ) p -- 들여쓴 서브쿼리
ON p.PlayerName = ps.PlayerName
GROUP BY ps.Team
HAVING COUNT(p.PlayerName) >=24
ORDER BY NonNthAmerPlayers DESC;
--는 한 줄의 코드나 텍스트를 주석 처리합니다
SELECT ps.Team,
COUNT(p.PlayerName) NonNthAmerPlayers -- 선수 수
FROM PlayerStats ps
-- 여기서부터 INNER JOIN
INNER JOIN
(SELECT PlayerName
FROM Players
WHERE Country <> 'USA'
OR Country <> 'Canada' ) p -- 들여쓴 서브쿼리
ON p.PlayerName = ps.PlayerName
GROUP BY ps.Team
HAVING COUNT(p.PlayerName) >=24
-- ORDER BY는 필요하지 않으므로 제거
ORDER BY NonNthAmerPlayers DESC;
INNER JOIN 앞에 구분 주석
ORDER BY 필요 여부에 대한 주석--는 한 줄의 코드나 텍스트를 주석 처리합니다
SELECT ps.Team,
COUNT(p.PlayerName) NonNthAmerPlayers -- 선수 수
FROM PlayerStats ps
-- 여기서부터 INNER JOIN
INNER JOIN
(SELECT PlayerName
FROM Players
WHERE Country <> 'USA'
OR Country <> 'Canada' ) p -- 들여쓴 서브쿼리
ON p.PlayerName = ps.PlayerName
GROUP BY ps.Team
HAVING COUNT(p.PlayerName) >=24;
-- ORDER BY는 필요하지 않으므로 제거
-- ORDER BY NonNthAmerPlayers DESC
ORDER BY 구문을 주석 처리함SQL Server에서 쿼리 성능 향상하기