Tôi đang cố gắng tìm ra số lần trung bình một giá trị xuất hiện trong một cột, nhóm nó dựa trên một cột khác và sau đó thực hiện phép tính trên cột đó.SQL AVG (COUNT (*))?
Tôi có 3 bảng một chút như thế này
DVD
ID | NAME
1 | 1
2 | 1
3 | 2
4 | 3
COPY
ID | DVDID
1 | 1
2 | 1
3 | 2
4 | 3
5 | 1
LOAN
ID | DVDID | COPYID
1 | 1 | 1
2 | 1 | 2
3 | 2 | 3
4 | 3 | 4
5 | 1 | 5
6 | 1 | 5
7 | 1 | 5
8 | 1 | 2
vv
Về cơ bản, tôi đang cố gắng để tìm thấy tất cả các id bản sao xuất hiện trong bảng vay lần ít hơn số lần trung bình cho tất cả các bản sao của DVD đó. Vì vậy, trong ví dụ trên, sao chép 5 của dvd 1 xuất hiện 3 lần, sao chép 2 hai lần và sao chép 1 một lần để mức trung bình cho DVD đó là 2. Tôi muốn liệt kê tất cả các bản sao của (và DVD) khác xuất hiện ít hơn số đó trong bảng Loan.
Tôi hy vọng rằng có ý nghĩa nhiều hơn một chút ...
Cảm ơn
Vì vậy, trong ví dụ của bạn, tập dữ liệu kết quả nào sẽ được trả lại? Nó có nên xuất ra 2 cho DVDID = 1 và 1 cho hai cái còn lại không? –
... bởi vì nói 'số lần trung bình một giá trị xuất hiện trong một cột' không có ý nghĩa gì cả. Số lần nó xuất hiện là số lần nó xuất hiện; bạn không thể trung bình một giá trị. –
Xin lỗi, tôi đang ngủ! Tôi có nghĩa là tôi muốn tìm số lần trung bình các bản sao của mỗi đĩa DVD xuất hiện trong bảng Loan –