Oracle
 sql >> Baza danych >  >> RDS >> Oracle

SQL nie jest funkcją jednogrupową

Mówiąc prościej, problem polega na tym, że SUMA(CZAS) dla konkretnego numeru SSN w zapytaniu jest pojedynczą wartością, więc sprzeciwia się MAX, ponieważ nie ma to sensu (maksymalna wartość pojedynczej wartości jest bez znaczenia).

Nie jestem pewien, jakiego serwera bazy danych SQL używasz, ale podejrzewam, że potrzebujesz bardziej podobnego zapytania (napisane w tle MSSQL - może wymagać tłumaczenia na serwer sql, którego używasz):

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

W ten sposób otrzymasz numer SSN z najwyższym łącznym czasem i łącznym czasem.

Edytuj — jeśli masz kilka w tym samym czasie i chcesz je wszystkie, których użyjesz:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-00918:kolumna niejednoznacznie zdefiniowana w SELECT *

  2. Oracle SQL:Jak użyć więcej niż 1000 elementów w klauzuli IN

  3. zapytanie Oracle sql, aby wyświetlić wszystkie daty z poprzedniego miesiąca

  4. Anonimowy typ TABLE lub VARRAY w Oracle

  5. oracle diff:jak porównać dwie tabele?