sql >> Database teknologi >  >> RDS >> Oracle

SQL er ikke en enkeltgruppegruppefunktion

Nå, problemet er ganske enkelt, at SUM(TIME) for et specifikt SSN på din forespørgsel er en enkelt værdi, så den gør indsigelse mod MAX, da det ikke giver mening (Maksimum af en enkelt værdi er meningsløst).

Jeg er ikke sikker på, hvilken SQL-databaseserver du bruger, men jeg formoder, at du vil have en forespørgsel mere som denne (Skrevet med en MSSQL-baggrund - skal muligvis oversætte til den sql-server, du bruger):

SELECT TOP 1 SSN, SUM(TIME)
FROM downloads
GROUP BY SSN
ORDER BY 2 DESC

Dette vil give dig det SSN med den højeste samlede tid og den samlede tid for det.

Rediger - Hvis du har flere med samme tid og vil have dem alle, ville du bruge:

SELECT
SSN, SUM(TIME)
FROM downloads
GROUP BY SSN
HAVING SUM(TIME)=(SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN))


  1. For loop eksempel i MySQL

  2. Brug af flere PostgreSQL-skemaer med Rails-modeller

  3. Optimering af TempDB:Undgå flaskehalse og præstationsproblemer

  4. Hvordan migrerer man en PostgreSQL-database til en SQLServer-database?