SQL (php) нужно извлечь лучшие записи

Следующий код не работает как следует.

SELECT Species, FishName, Rank, Angler, lb, oz, dr, Drams, Peg, DateCaught
FROM
(SELECT Species, FishName, Rank, Angler, lb, oz, dr, Drams, Peg, DateCaught
FROM   ConqPB
ORDER BY FishName, Drams DESC) a
WHERE Species = 'Common Bream'
GROUP BY FishName
ORDER BY Species ASC, Rank ASC, Drams ASC

Это список видов обыкновенного леща, который покажет список рекордов по весам для каждого имени рыбы И рыболова, который их поймал.

НО по какой-то неизвестной причине — и я не редактировал его, он перестал работать и теперь возвращает только одного лучшего рыболова, а не фактического лучшего.

Внутреннее утверждение проверило нормально и возвращает список имен рыб и расположило вес (драм) в порядке убывания. Когда это отображается, верхняя запись названия каждой рыбы — это максимальный вес улова. Внешнее утверждение сейчас терпит неудачу.

Любая помощь здесь будет очень признательна. Также я хотел бы знать, почему это перестало работать.

Пример:

Species           FishName               Drams             Angler
Common Bream      Henry                  300               Peter Beard
Common Bream      Henry                  400               Harry Web
Common Bream      Henry                  0                 Carl Pilk
Common Bream      Darcy                  0                 Peter Beard
Common Bream      Darcy                  760               Harry Web
Common Bream      Darcy                  900               Carl Pilk

Результат будет

Общие Лещ Отчеты

Fishname             Drams                 Angler
Henry                400                   Harry Web
Darcy                900                   Carl Pilk

0

Решение

select
*
from
t
inner join (
select
species, fishname, max(drams) as maxdrams
from
t
group by species, fishname
) sq on t.species = sq.species and t.fishname = sq.fishname and sq.maxdrams = t.drams
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]