Alguns SGBDs têm o recurso do TOP(X) (X é um número), que te retorna o número máximo de linhas da consulta. Assim, você consegue extrair só uma linha, contendo o sexo que tem mais registros…
E como você precisa dos 2 valores, tanto masculo, como feminino na mesma linha, então você vai precisar fazer um subSelect, ou então resolver isto com uma Stored Procedure, ou claro se puder fazer isto no java mesmo.
Caso não consiga resolver com o CASE-WHEN e SubSelect, retorne como tentou.
Att
pmlm
Podes tentar algo assim:
Mas não vai dar certo para quando o número de M e F for o mesmo (vai dizer sempre que um deles viajou mais)
Alexandre_Saudate
pergunta…
porque não simplesmente pegar só a primeira linha que retorna do banco?
GabrielCardelli
asaudate:
pergunta…
porque não simplesmente pegar só a primeira linha que retorna do banco?
Pediram… fazer oq… koaskposa
Ae… Eu resolvi fazendo isso:
SELECT DISTINCT DECODE(GREATEST(maxF,maxM),maxF,'O Sexo Feminino viajou mais Vezes.',maxM,'O Sexo Masculino viajou mais Vezes.') "Resultado"
FROM Passageiro,(SELECT COUNT(*) maxF FROM PASSAGEIRO WHERE SexoPassageiro = 'F'),
(SELECT COUNT(*) maxM FROM PASSAGEIRO WHERE SexoPassageiro = 'M');