2012-04-15 3 views
0

У меня есть таблица, называемая релизами, частью базы данных «музыка». Таблица состоит из двух столбцов; cd_id, band_idMySQL - Несколько значений, связанных с запрошенным значением

Я хочу перечислить cd_id и количество полос, привлекаемых для каждого компакт-диска, где два или более band_id связаны с одним cd_id значением.

Не могли бы вы помочь мне рассказать это? Заранее спасибо.

ответ

1

Это совокупность COUNT() с HAVING пункта:

SELECT 
    cd_id, 
    count(*) AS numbands 
FROM releases 
GROUP BY cd_id 
HAVING numbands >= 2 

COUNT(*) в сочетании с GROUP BY cd_id возвращает количество band_id на cd_id, и для того, чтобы ограничить их к выбросам с 2+ band_id, A HAVING : numbands (псевдоним, присвоенный значению счетчика) >= 2.

Примечание: предполагается, что каждый band_id указан только один раз за cd_id. Если это не так, чтобы получить уникальные полосы на компакт-диск, используйте

COUNT(DISTINCT band_id) AS numbands 

вместо COUNT(*) AS numbands.

1

Предполагая, что выбросы не перечислить ту же полосу дважды для CD_ID

select CD_ID, count(*) 
from releases 
GROUP BY CD_ID 
HAVING count(*) > 1 
Смежные вопросы