Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

SQL não é uma função de grupo de grupo único


Bem, o problema simples é que o SUM (TIME) para um SSN específico em sua consulta é um valor único, portanto, está se opondo ao MAX, pois não faz sentido (o máximo de um único valor não tem sentido).

Não tenho certeza de qual servidor de banco de dados SQL você está usando, mas suspeito que você queira uma consulta mais como esta (escrita com um plano de fundo MSSQL - pode precisar de alguma tradução para o servidor sql que você está usando):
SELECT TOP 1 SSN, SUM(TIME)
FROM downloads
GROUP BY SSN
ORDER BY 2 DESC

Isso lhe dará o SSN com o maior tempo total e o tempo total para isso.

Editar - Se você tiver vários com um tempo igual e quiser todos, você usaria:
SELECT
SSN, SUM(TIME)
FROM downloads
GROUP BY SSN
HAVING SUM(TIME)=(SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN))