Próbuję utworzyć tabelę wyników z ostatnią ukończoną datą kursu dla każdego kodu kursu, a także ostatni ukończony kod kursu dla każdego pracownika łącznie . Poniżej jest moje zapytanie:MAX() i MAX() NAD PARTYCJI PRZEZ generuje błąd 3504 w zapytaniu Teradata
SELECT employee_number,
MAX(course_completion_date)
OVER (PARTITION BY course_code) AS max_course_date,
MAX(course_completion_date) AS max_date
FROM employee_course_completion
WHERE course_code IN ('M910303', 'M91301R', 'M91301P')
GROUP BY employee_number
Ta kwerenda produkuje następujący błąd:
3504 : Selected non-aggregate values must be part of the associated group
Jeśli usunąć MAX() OVER (partycję ...) linii, zapytanie wykonuje dobrze, więc Wyizolowałem problem z tą linią, ale po przeszukiwaniu tych forów i internetu nie widzę, co robię źle. Czy ktoś może pomóc?
Ponieważ używasz OVER w odniesieniu do maksimum, SQL widzi te jako funkcje analityczne - nie agregaty. –