Oracle cho phép các hàm tổng hợp lồng nhau (xem tài liệu ).
Tuy nhiên, nó yêu cầu GROUP BY
. Vì vậy, điều này được cho phép:
SELECT MAX(AVG(SYSDATE - inv_date))
FROM invoice
GROUP BY Cust_ID;
Về cơ bản, đây là cách viết tắt của:
SELECT MAX(x)
FROM (SELECT AVG(SYSDATE - inv_date) as x
FROM invoice
GROUP BY Cust_Id
) i;
Tuy nhiên, trong trường hợp của bạn, không có GROUP BY
. Oracle không cho phép GROUP BY
lồng nhau không có GROUP BY
.
Và nếu bạn tò mò, tôi không phải là một fan hâm mộ của chức năng mở rộng này. Tôi không thấy rằng nó thực sự giải quyết được vấn đề.