sql >> Databáze >  >> RDS >> Oracle

SQL není skupinová funkce s jednou skupinou

Problém je jednoduše řečeno v tom, že SUM(TIME) pro konkrétní SSN ve vašem dotazu je jedna hodnota, takže je to proti MAX, protože to nedává smysl (Maximum jedné hodnoty nemá smysl).

Nejste si jisti, jaký databázový server SQL používáte, ale mám podezření, že chcete dotaz podobný tomuto (napsaný na pozadí MSSQL – možná bude potřeba přeložit na server SQL, který používáte):

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

Získáte tak SSN s nejvyšším celkovým časem a celkovým časem.

Upravit – Pokud máte více se stejným časem a chcete je všechny, použili byste:

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


  1. Oracle SQL - max() s hodnotami NULL

  2. mysql automaticky ukládá časové razítko vytvoření záznamu

  3. MyCLI – MySQL/MariaDB klient s automatickým dokončováním a zvýrazněním syntaxe

  4. Jaká je maximální velikost MySQL VARCHAR?