2014-02-21 3 views
0

Мне нужен запрос, который возвращает количество спортсменов в каждой команде.SQL help для новичков

В нем должны отображаться только команды с именем, превышающим среднюю длину имен и фамилий спортсмена.

У меня есть две таблицы команды и sportmans.

Вот что я пробовал:

SELECT TIMOVI,SPORTISTI COUNT(IME_PREZIME) 
FROM TIMOVI 
JOIN SPORTISTI 
    ON SIFRA=TIM, 
GROUP BY TIMOVI 
WHERE LENGTH(naziv)> ((AVG(LENGHT(ime_preizime)))/2) 
+0

ВЫБРАТЬ TIMOVI, SPORTISTI СЧЕТ (IME_PREZIME) ОТ TIMOVI РЕГИСТРИРУЙТЕСЬ SPORTISTI ПО SIFRA = TIM, GROUP BY TIMOVI ГДЕ ДЛИНА (naziv)> ((AVG (ДЛИНА (ime_preizime)))/2) – Mrsevic

+0

У меня есть две таблицы команды и спортсмен – Mrsevic

+0

команда код PK, имя, дата нахождения – Mrsevic

ответ

0

Как насчет запроса, как это:

SELECT t.name, COUNT(s.id) 
FROM team t 
INNER JOIN sportsman s ON s.team = t.id 
WHERE LENGTH(t.name) > (
    SELECT AVG(LENGTH(s2.name)) FROM sportsman s2 
) 
GROUP BY t.id 

Для схемы, как это:

CREATE TABLE sportsman (
    id INTEGER, 
    team INTEGER, 
    name VARCHAR(50) 
); 

CREATE TABLE team (
    id INTEGER, 
    name VARCHAR(50) 
); 

SQL Fiddle

+0

Прошло некоторое время с тех пор, как я вошел на этот сайт, и я не заметил вашего ответа. Спасибо за ваш ответ. – Mrsevic

+0

Добро пожаловать :) – theon