SQL Serverでクエリ性能を改善する
Dean Smith
Founder, Atamai Analytics
SELECT PlayerName,
Team
FROM PlayerStats;
| PlayerName | Team |
|---|---|
| ... | ... |
| Emmanuel Mudiay | DEN |
| Emmanuel Mudiay | NYK |
| Enes Kanter | NYK |
| Eric Bledsoe | PHO |
| Eric Bledsoe | MIL |
| ... | ... |
SELECT DISTINCT(PlayerName)
FROM PlayerStats;
| PlayerName |
|---|
| ... |
| Emmanuel Mudiay |
| Enes Kanter |
| Eric Bledsoe |
| Eric Gordon |
| Eric Moreland |
| ... |
SELECT DISTINCT(PlayerName)
FROM PlayerStats;
SELECT PlayerName
FROM PlayerStats
GROUP BY PlayerName;
SELECT DISTINCT(PlayerName)
FROM PlayerStats;
SELECT PlayerName
FROM PlayerStats
GROUP BY PlayerName;
SELECT PlayerName,
COUNT(Team) AS TeamsPlayedFor
FROM PlayerStats
GROUP BY PlayerName;
| PlayerName | TeamsPlayedFor |
|---|---|
| ... | ... |
| Emmanuel Mudiay | 2 |
| Enes Kanter | 1 |
| Eric Bledsoe | 2 |
| Eric Gordon | 1 |
| Eric Moreland | 1 |
| ... | ... |
SELECT PlayerName
FROM Players;
| PlayerName |
|---|
| ... |
| Emmanuel Mudiay |
| Enes Kanter |
| Eric Bledsoe |
| Eric Gordon |
| Eric Moreland |
| ... |
Fruits1
| FruitName | FruitType |
|---|---|
| Grapefruit | Citrus |
| Orange | Citrus |
| Peach | Stone |
| Strawberry | Berry |
Fruits2
| FruitName | FruitType |
|---|---|
| Marionberry | Berry |
| Orange | Citrus |
| Plum | Stone |
| Strawberry | Berry |
Orange と Strawberry は重複Fruits1 を Fruits2 に追加
| FruitName | FruitType |
|---|---|
| ... | ... |
| Orange | Citrus |
| Orange | Citrus |
| Plum | Stone |
| Strawberry | Berry |
| Strawberry | Berry |
SELECT FruitName, FruitType
FROM Fruits1
UNION
SELECT FruitName, FruitType
FROM Fruits2
| FruitName | FruitType |
|---|---|
| Grapefruit | Citrus |
| Orange | Citrus |
| Peach | Stone |
| Strawberry | Berry |
| Marionberry | Berry |
| Plum | Stone |
DISTINCT() を使う前に確認:
GROUP BY で集約UNION を使う前に確認:
UNION ALL を検討SQL Serverでクエリ性能を改善する