Я использую как Java, так и SQL для программы базы данных, которую я пишу (используя Oracle Database). Предположим, у меня есть таблица вроде следующего:Создание столбца в базе данных на основе сравнения нескольких столбцов
Student Major
Student1 CS
Student1 Math
Student1 CS
Student2 English
Student2 Bio
Student2 English
Что такое лучший способ, который я могу экземпляры флаг, где студент изменился с одного майора к другому и вернулся к своим первоначальным основным? В идеале, результат будет выглядеть следующим образом:
Student Major Flagged_Values
Student1 CS
Student1 Math
Student1 CS 1
Student2 English
Student2 CS
Student2 English 1
С Student1 и Student2 изменились майоры, а затем вернулся к оригиналу. Я новичок в программировании базы данных, а часть, с которой я запутался, сравнивает значения из нескольких столбцов на основе студента или номера идентификатора, такого как мой пример выше. Если кто-нибудь может объяснить, как это сделать, это было бы полезно.
String switches = "SELECT Table.Student, Table.Major, " +
"COUNT(*)OVER (partition by Major)WHERE(partition by Student)" +
"AS Switches FROM Table";
ResultSet result = st.executeQuery(switches);
Вот код, который я до этого момента, но я не знаю, если разделяющей два раза в одном операторе будет работать, или если потребуется подсекции. Если бы я хотел добавить новый столбец со значениями, отмеченными значком, мне нужен цикл while для повторения через ResultSet выше? Заранее спасибо.
Спасибо, Джо. Это очень полезно! Я ценю это. – user2554121