Cześć, zrobiłem sobie zapytanie które wybiera mi wszystkie dane o najwyższej osobie w danym dziale:
SELECT * FROM osoby JOIN (SELECT MAX(wzrost) AS max FROM osoby o JOIN dzialy d ON o.iddzialu = d.iddzialu GROUP BY d.iddzialu) AS aaa ON osoby.wzrost = aaa.max;
+---------+----------+----------+---------+----------+--------+------+
| IdOsoby | IdDzialu | Nazwisko | Imie | RokUrodz | wzrost | max |
+---------+----------+----------+---------+----------+--------+------+
| 6 | 4 | Nowicki | Jan | 1972 | 1.93 | 1.93 |
| 6 | 4 | Nowicki | Jan | 1972 | 1.93 | 1.93 |
| 9 | 1 | Zi?ba | Andrzej | 1972 | 1.69 | 1.69 |
| 12 | 2 | Kowalski | Adam | 1980 | 1.76 | 1.76 |
| 14 | 3 | Nowak | Edward | 1960 | 1.93 | 1.93 |
| 14 | 3 | Nowak | Edward | 1960 | 1.93 | 1.93 |
+---------+----------+----------+---------+----------+--------+------+
I teraz pytanie dlaczego dwa rekordy mi się powtarzają?
Dodam, że podzapytanie zwraca mi:
+------+
| max |
+------+
| 1.69 |
| 1.76 |
| 1.93 |
| 1.93 |
+------+
A w tabeli osoby mam powtarzające się wartości wzrost:
+---------+----------+----------+--------+----------+--------+
| IdOsoby | IdDzialu | Nazwisko | Imie | RokUrodz | wzrost |
+---------+----------+----------+--------+----------+--------+
| 6 | 4 | Nowicki | Jan | 1972 | 1.93 |
| 14 | 3 | Nowak | Edward | 1960 | 1.93 |
| 2 | 2 | Nowak | Karol | 1979 | 1.72 |
| 3 | 3 | Kow | Piotr | 1967 | 1.72 |
+---------+----------+----------+--------+----------+--------+
Wiem, że mogę sobie zrobić grupowanie i bedzie po problemie. Pytam jednak z czystej ciekawości.