Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

SQL không phải là một hàm nhóm nhóm đơn

Vâng, vấn đề nói một cách đơn giản là SUM (TIME) cho một SSN cụ thể trên truy vấn của bạn là một giá trị duy nhất, vì vậy nó phản đối MAX vì điều đó vô nghĩa (Giá trị tối đa của một giá trị là vô nghĩa).

Không chắc bạn đang sử dụng máy chủ cơ sở dữ liệu SQL nào nhưng tôi nghi ngờ bạn muốn một truy vấn tương tự như thế này (Được viết trên nền MSSQL - có thể cần một số dịch sang máy chủ sql bạn đang sử dụng):

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

Điều này sẽ cung cấp cho bạn SSN với tổng thời gian cao nhất và tổng thời gian dành cho nó.

Chỉnh sửa - Nếu bạn có nhiều với một thời gian bằng nhau và muốn tất cả chúng, bạn sẽ sử dụng:

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. hàm listunagg?

  2. kiểm tra xem đó có phải là một hàm số trong Oracle không

  3. Trình điều khiển ODP.NET được quản lý không hiển thị trong hộp thoại Nguồn dữ liệu

  4. Cách tạo hàm PL / SQL trong cơ sở dữ liệu Oracle

  5. Làm thế nào để nhập ký tự dòng mới trong Oracle?