2009-09-10 4 views
0

Частичное фрагмент моего выхода выглядит следующим образом:Помощь с SQL Группировка

CNEP P000000025 1 
CNEP P000000029 1 
NONMAT P000000029 1 
CNEP P000000030 1 
CWHCNP P000000030 1 
MSN P000000030 1 

Каждая строка представляет собой термин, который студент находится в определенной учебной программе. Прямо сейчас я группирую информацию, чтобы убедиться, что каждый UserID коррелирует с частичной учебной программой только один раз.

Обратите внимание, что «P000000029» и «P000000030» имеют несколько записей.

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

ответ

2

Предполагая columnbs названы учебные программы и идентификатор пользователя (понятия не имею, что третий столбец IS ;-), вы можете получить UserIds интересов с помощью, например:

select userid 
from thetable 
group by userid 
having count(distinct curriculum) > 1 

и другая информация о идентификаторами пользователей выбраны так, через in, объединяет и аналогичные операции, как обычно.

+0

Я никогда не считал особым в счете («имея счет (отдельный учебный план)> 1»). Требуется ли это только в том случае, если в таблице несколько раз отображается заданное сопряжение с идентификатором пользователя/учебным планом? – Mayo

+0

@ Майо, да, это так. –

0

Я не думаю, что вы показываете информацию о студенте в своих данных образца. Но вы все еще можете использовать это, чтобы найти группы с кратными (пример кода SQL Server, но запрос будет wrok только в любом месте):

DECLARE @YourTable table (col1 varchar(10), col2 char(10), col3 int) 

INSERT INTO @YourTable VALUES ('NEP','P000000025',1) 
INSERT INTO @YourTable VALUES ('CNEP','P000000029',1) 
INSERT INTO @YourTable VALUES ('NONMAT','P000000029',1) 
INSERT INTO @YourTable VALUES ('CNEP','P000000030',1) 
INSERT INTO @YourTable VALUES ('CWHCNP','P000000030',1) 
INSERT INTO @YourTable VALUES ('MSN','P000000030',1) 

SELECT 
    col1,COUNT(*) AS CountOf 
    FROM @YourTable 
    GROUP BY col1 
    HAVING COUNT(col2)>1 

ВЫВОД

col1  CountOf 
---------- ----------- 
CNEP  2 

(1 row(s) affected) 
+0

Я уверен, что вторая колонка, например, P000000025, является идентификатором студента. –