2014-10-13 3 views
0

Я пытаюсь создать точный подсчет числа учащихся. Существует отдельная запись для каждой регистрации курса, и любое изменение к этой конкретной регистрации курса приводит к другой записи с инкрементным порядковым номером. Моя таблица выглядит следующим образом:Выбор максимального значения на основе другой переменной в SQL

ID Course Number Sequence Number 
1  B101   1 
1  B101   2 
1  B101   3 
1  C201   1 
1  C201   2 
2  E215   1 
2  J320   1 
2  J320   2 

Я хотел бы, чтобы выбрать максимальное значение номера последовательности таким образом, что каждый регистрационный курс удерживается. Это означало бы, что ID 1 будет иметь 2 записи. Один из них должен быть B101 с порядковым номером = 3 и другой записью для C201 с порядковым номером = 2.

+0

Какой диалект sql? – Strawberry

ответ

2
SELECT id, course_number, MAX(sequence_number) FROM table GROUP BY id, course_number; 
+0

Спасибо большое! У меня очень ограниченные SQL-sqills (см. То, что я там сделал), но я пытаюсь научить себя. Есть ли у вас рекомендации о том, с чего начать? – jomacm04

+0

Мой опыт исходит из нескольких поддерживаемых баз данных веб-приложений и работы с SQL-напряжением. SQL был примерно через некоторое время, есть много хороших книг по этой теме - Amazon будет иметь много подходящих для уровня опыта. Знание дискретной математики и реляционной алгебры было бы полезно. Я бы рекомендовал найти набор данных или базу данных данных в интересующей вас теме, например, данные о здравоохранении или погоде, и экспериментировать, чтобы найти интересные вещи о данных. Просто продолжайте писать SQL, и у вас будет SQills в кратчайшие сроки. –

0

Вы должны сначала сгруппировать все элементы по идентификатору, а затем сгруппировать их по Course_Number и показать только максимальное значение Sequence_Number.

select id,Course_Number,max(Sequence_Number) from TblName group by id,Course_Number 
+1

Можете ли вы добавить какое-то объяснение относительно того, почему и как это будет ответом на вопрос ОФ? –

+0

Я сначала сгруппировал элементы по идентификатору, а затем сгруппировал его по Course_Number и отобразил только максимальное количество Sequence_Number. –

+0

Не добавляйте объяснений в качестве ответа на мой комментарий! Отредактируйте свой ответ, чтобы сделать его лучше, более значимым и полным. –

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