2014-09-01 4 views
1

У меня есть таблица Group с колонками GroupId и GroupName. Также есть другая таблица под названием Group_Student, которая отслеживает, к какой группе принадлежит студент. Он содержит столбцы GroupId (внешний ключ к таблице Group) и StudentId.SQL, чтобы получить количество членов в каждой группе

Я хотел бы узнать, как я могу написать запрос SQL, в котором перечислены GroupName, GroupId и количество студентов в каждой группе.

Пример, если Group_Student таблица содержит следующие записи

GroupId StudentId 
------------------- 
    1   2 
    1   3 
    2   4 

Затем SQL запрос должен произвести следующий вывод

GroupName MemberCount 
------------------------ 
    ABC   1 
    DEF   2  

Пожалуйста, дайте мне знать, как я могу написать SQL для этого. Я использую SQL Server 2005. Спасибо заранее.

ответ

1

Вот SQL скрипку это работает

http://sqlfiddle.com/#!3/0f8a5/2/0

select 
    groupname, [group].groupid, count(*) as 'MemberCount' 
from [group] 
inner join group_student on [group].groupid = group_student.groupid 
group by groupname, [group].groupid 
0

Попробуйте ниже запрос:

Он присоединится две таблицы, а затем добавить счетчик к нему. Предложение GROUP BY гарантирует, что значения для подсчета сгруппированы по GroupName и GroupId

SELECT GroupName, a.GroupId, count(StudentId) "MemberCount" 
FROM Group a 
JOIN Group_student b on a.GroupId= b.GroupId 
GROUP BY GroupName, a.GroupId 
1
SELECT GroupName, Group.GroupID, COUNT(StudentId) AS MemberCount 
FROM Group 
INNER JOIN Group_Student ON Group.GroupID = Group_Student.GroupID 
GROUP BY Group.GroupID 
Смежные вопросы