열에 집계 연산을 수행하는 저장 함수를 작성해야합니다. 중간 값 (실제로는 구현하려는 여러 가지 요약 함수가 있음)을 가정 해 보겠습니다. 이상적으로는, medBy(col1 col2 col3)
과 같은 것을 가지고 싶습니다. 그러면 각 행에 대해이 col2와 col3 값이 같은 모든 행의 col1 값의 중앙값을 반환합니다. 그렇게하면 전체 쿼리에서 GROUP BY
을 수행 할 필요가 없으며 해당 열에서 반복되는 값만 있습니다.MySQL에 저장된 집계 함수를 만드는 방법은 무엇입니까?
이 질문 (How to write the quantile aggregate function?)은 비슷한 질문을했지만 저장된 함수가 아니라 쿼리로 대답했습니다.
저장 함수가 전체 열 col1
과 현재 행의 값이 col2
및 col3
인데 대해 연산을 수행하도록 지정하는 구문을 알고 싶습니다.
@ djacobson : @djacobson : @djacobson : 저장된 함수의 모든 예제 각 매개 변수는 단일 스칼라 값으로 취급됩니다. 어쨌든 제가 처음부터해야 할 질문은 집계 된 저장 함수를 선언하는 것입니다. 그래서, 그냥 다음과 같은 함수를 원한다고 가정 해 봅시다 : medBy(col1)
그리고 인수에 지정된 열의 중앙값을 반환합니다. 각 행에 대해 한 번. 따라서 내가 SELECT col1 my_values, medBy(col1) my_median FROM foo
을 수행하면 값 열 (my_values
)과 첫 번째 열의 반복 중간 값 인 열 (my_median
)이 표시됩니다.
감사합니다.
그래서 여러 열뿐만 아니라 여러 열에서 작동하는 집계 함수를 원합니다 ... 내가 본 것을 생각하지 마십시오. – GolezTrol
오프베이스로 보이지 않는다. 두 번째와 세 번째로 그룹화하거나 필터링하는 동안 함수의 첫 번째 매개 변수를 집계한다. –