Cải thiện hiệu năng truy vấn trong 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, ...ONAND/ORASTừ
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
Thành
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;
/* Trả về danh sách đội NBA có từ 24 cầu thủ không thuộc Bắc Mỹ trở lên trong danh sách. */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;
Dùng /* và */ để chú thích một khối mã hoặc văn bản
/* Trả về danh sách đội NBA có từ 24 cầu thủ không thuộc Bắc Mỹ trở lên trong danh sách. */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;
Dùng /* và */ để chú thích một khối mã hoặc văn bản
| Team | NonNthAmerPlayers |
|---|---|
| HOU | 24 |
| LAL | 24 |
| MEM | 24 |
| MIL | 24 |
Dùng -- để chú thích một dòng mã hoặc văn bản
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;
Dùng -- để chú thích một dòng mã hoặc văn bản
SELECT ps.Team,
COUNT(p.PlayerName) NonNthAmerPlayers -- Số lượng cầu thủ
FROM PlayerStats ps
INNER JOIN
(SELECT PlayerName
FROM Players
WHERE Country <> 'USA'
OR Country <> 'Canada' ) p -- Thụt lề truy vấn con
ON p.PlayerName = ps.PlayerName
GROUP BY ps.Team
HAVING COUNT(p.PlayerName) >=24
ORDER BY NonNthAmerPlayers DESC;
Dùng -- để chú thích một dòng mã hoặc văn bản
SELECT ps.Team,
COUNT(p.PlayerName) NonNthAmerPlayers -- Số lượng cầu thủ
FROM PlayerStats ps
-- Inner join bắt đầu tại đây
INNER JOIN
(SELECT PlayerName
FROM Players
WHERE Country <> 'USA'
OR Country <> 'Canada' ) p -- Thụt lề truy vấn con
ON p.PlayerName = ps.PlayerName
GROUP BY ps.Team
HAVING COUNT(p.PlayerName) >=24
-- Bỏ ORDER BY, không bắt buộc
ORDER BY NonNthAmerPlayers DESC;
INNER JOIN
ORDER BYDùng -- để chú thích một dòng mã hoặc văn bản
SELECT ps.Team,
COUNT(p.PlayerName) NonNthAmerPlayers -- Số lượng cầu thủ
FROM PlayerStats ps
-- Inner join bắt đầu tại đây
INNER JOIN
(SELECT PlayerName
FROM Players
WHERE Country <> 'USA'
OR Country <> 'Canada' ) p -- Thụt lề truy vấn con
ON p.PlayerName = ps.PlayerName
GROUP BY ps.Team
HAVING COUNT(p.PlayerName) >=24;
-- Bỏ ORDER BY, không bắt buộc
-- ORDER BY NonNthAmerPlayers DESC
ORDER BYCải thiện hiệu năng truy vấn trong SQL Server