Как использовать функцию Count в Oracle Developer - PullRequest
1 голос
/ 10 ноября 2010

Хорошо, я работаю над домашней работой и у меня возникают проблемы с корректной работой функции Count.

Я должен использовать «запрос, в котором перечислены все команды, в которых более 4 игроков (в таблице игроков). Включите столбцы team_id, team_name и количество игроков в этой команде».

Это просто простая база данных НХЛ, которую наш учитель составил для этого задания. В базе данных команд 18 команд, в базе игроков 74 игрока.

Это то, что я написал прямо сейчас:

SELECT teams.team_id, teams.team_name, COUNT(players.team_id) AS PlayerCount 
FROM teams, players
GROUP BY teams.team_id, teams.team_name
HAVING COUNT(players.team_id) > 4;

И когда я запускаю этот вывод, я получаю:

TEAM_ID TEAM_NAME                           PLAYERCOUNT            
------- ----------------------------------- ---------------------- 
TBL     Tampa Bay Lightening                74                     
BOS     Bostong Bruins                      74                     
SJS     San Jose Sharks                     74                     
NYI     New York Islanders                  74                     
MIN     Minnesota Wild                      74                     
DET     Detroit Red Wings                   74                     
NYR     New York Rangers                    74                     
PHL     Philadelphia Flyers                 74                     
BUF     Buffalo Bruins                      74                     
PIT     Pittsburgh Penguins                 74                     
DAL     Dallas Stars                        74                     
VAN     Vancouver Canucks                   74                     
WSH     Washington Capitals                 74                     
COL     Colorado Avalanche                  74                     
TOR     Toronto Maple Leafs                 74                     
CLB     Columbus Blue Jackets               74                     
CHI     Chicago Blackhawks                  74                     
ATL     Atlanta Thrashers                   74                     

18 rows selected

Я знаю, что это, вероятно, довольно просто исправить, но я не могу найти ничего подобного в своем учебнике, и результаты Google, которые я получаю, либо не то же самое, либо более сложные, чем то, что я пытаюсь сделать. *

Любая помощь очень ценится.

1 Ответ

2 голосов
/ 10 ноября 2010

Вы делаете декартово соединение между таблицами.

SELECT teams.team_id, teams.team_name, COUNT(*) AS PlayerCount 
FROM teams, players
WHERE teams.team_id = players.team_id
GROUP BY teams.team_id, teams.team_name
HAVING COUNT(*) > 4;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...