Помощь с группировкой SQL - PullRequest
0 голосов
/ 10 сентября 2009

Частичный фрагмент моего вывода выглядит следующим образом:

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 10 сентября 2009

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

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

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

0 голосов
/ 10 сентября 2009

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

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

OUTPUT

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

(1 row(s) affected)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...