ВЫБЕРИТЕ команды с> 1 испанским игроком - PullRequest
0 голосов
/ 17 февраля 2019

Я знаю, что это очень простой вопрос для сообщества StackOverflow.Однако я не нашел ответа на мою проблему ни в StackOverflow, ни на других сайтах.

Позвольте мне объяснить проблему.

Я хочу запросить выбор команд с более чем одним испанцемна них.

Это таблицы команд (equipos) и игрока (jugadores): https://imgur.com/a/7BNqfmu

Мой запрос:

SELECT
    nombre
FROM
    equipos
WHERE
    id IN (
        SELECT
            id_equipo
        FROM
            jugadores
        WHERE
            upper(procedencia) = 'SPAIN'
    )
GROUP BY nombre
HAVING COUNT(*) > 1;

Запрос ничего не возвращаетОднако, когда я выполняю тестовый запрос, чтобы проверить, есть ли команды с более чем одним игроком испанского языка, я получаю 1 команду с 2 игроками испанского языка, поэтому я ожидаю получить эту команду в моем запросе выше.

Testзапрос, возвращающий команду с 2-мя испанскими игроками:

SELECT
    j.nombre,
    e.nombre AS equipo
FROM
    jugadores j
JOIN equipos e ON j.id_equipo = e.id
WHERE
    upper(procedencia) = 'SPAIN';

Возвращаемые значения:

Jorge Garbajosa Raptors
Jose Calderon   Raptors
Sergio Rodriguez    Trail Blazers
Pau Gasol   Lakers
Juan Carlos Navarro Grizzlies

Как видите, у Рапторов есть 2 испанских игрока.Я должен что-то упустить в моем первоначальном запросе.Я не уверен, что у меня есть клаузула.

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Ваша версия будет работать, если GROUP BY и HAVING находятся в подзапросе :

SELECT e.nombre
FROM equipos e
WHERE e.id IN (SELECT j.id_equipo
               FROM jugadores j
               WHERE upper(procedencia) = 'SPAIN'
               GROUP BY j.id_equipo
               HAVING COUNT(*) > 1;
              );
0 голосов
/ 17 февраля 2019

Вы можете попробовать запрос ниже с предложением

SELECT
    e.nombre AS equipo
FROM
    jugadores j
JOIN equipos e ON j.id_equipo = e.id
WHERE upper(procedencia) = 'SPAIN'
GROUP BY upper(procedencia), e.nombre
HAVING COUNT(j.nombre)>1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...