Problem z grupowaniem sql

Problem z grupowaniem sql
PP
  • Rejestracja:około 13 lat
  • Ostatnio:ponad 4 lata
  • Postów:47
0

Cześć,
Prośba o pomoc jak powinienem to pogrupować, bo się już pogubiłem w tym wszystkim.
Zapytanie ma wyświetlić wszystkie prowadzone zajęcia - tytuł, nazwisko i imię prowadzącego, nazwę przedmiotu, typ zajęć oraz nazwę grupy studenckiej

Kopiuj
select tytulnaukowy.nazwa, wykladowca.imie, wykladowca.nazwisko, przedmiot.nazwa, charakter.nazwa, grupa.nazwa
    from charakter, grupa, przedmiot, tytulnaukowy, wykladowca, zajecia
    where wykladowca.id_tytul = tytulnaukowy.id_tytul
    and wykladowca.id_wykladowca = zajecia.id_wykladowca
    and przedmiot.id_przedmiot = zajecia.id_przedmiot
    and charakter.id_charakter = zajecia.id_charakter
    and grupa.id_grupa = zajecia.id_grupa
   group by grupa.id_grupa;

Patryk27
Z ciekawości: dlaczego nie wykorzystasz klauzuli join?
PP
Uczę się dopiero.
WL
To zmień nicka...
AK
Dokładnie. Kolega podobno w jakiś rekrutacjach bazodanowych startuje. Chore
UglyMan
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 3 lata
  • Postów:2206
1

Musisz pogrupowac po wszystkich kolumnach jakie masz w selekcie. W selekcie mogą byc kolumny po których grupujesz albo dzialasz na nich jakas funkcja agregujaca.

Zobacz pozostałe 4 komentarze
PP
ale teraz mówię ogólnie, bo pisałem kilka zapytań i w większości wystarczyła jedna kolumna w group by. Od czego to zależy?
UglyMan
Pokaż te zapytania i napisz jaka to baza danych
Marcin.Miga
@ProProgramer: w GROUP BY dajesz wszystkie kolumny, wg których grupujesz. Nie wyszczególniasz tych, przy których masz funkcje agregujące (MIN, MAX, SUM, COUNT, AVG...) oraz stałych (niezależnych od bieżącego rekordu). W niektórych silnikach bazodanowych możesz to zastąpić kluczem głównym, ale nie będę ci tu dodatkowo zaciemniał...
PA
MySQL sobie radzi bez wypisania wszystkich kolumn w group by, nie wiem co on wtedy zwraca, ale błedem nie sypie ;)
WL
Ta, MySQL ma dużo takich wspomagaczy a potem chłopaki od PHP kwiczą, że te "bazy danych to jakieś porypane są" ;-) OIDP to można było sobie w MySQL np. zwrócić wartość z kolumny, która nie jest otoczona funkcją agregującą w zapytaniu z group by - i co on WTEDY zwraca? :D
BlackBad
  • Rejestracja:ponad 8 lat
  • Ostatnio:6 dni
  • Postów:454
1

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.