2010-10-21 4 views
1

Использование SQLite.Несколько COUNT в одном запросе SQLITE

SELECT c.*, 
      COUNT(m.course_id) AS "meeting_count", 
      COUNT(r.meeting_id) AS "race_count" 
    FROM course c 
LEFT JOIN meeting m ON m.course_id = c.id 
LEFT JOIN race r ON r.meeting_id = m.id 
GROUP BY c.id 

Курс имеет встречи имеет гонки.

Пытается выбрать правильный счет для встреч с курсами и курсов. Проблема заключается в том, что указанный выше запрос возвращает один и тот же счетчик для «meeting_count» как «race_count». Что я делаю не так?

+0

COUNT подсчитывает число ненулевых значений в столбце указано - без примера данных, как мы должны знать, почему вы получаете идентичные счетчики, или, если это плохо? –

ответ

2

попробуйте добавить DISTINCT как COUNT(DISTINCT m.course_id)

+0

, похоже, делает трюк :) нужно развернуть мои данные за 1 встречу, чтобы убедиться, что он правильно их вычисляет. – 2010-10-21 17:05:17

Смежные вопросы