반응형
테이블에 column_1, column_2 및 column_3과 같은 몇 개의 열이 있습니다.
score라는 테이블에 새 열을 추가합니다. 제가하고 싶은 것은이 세 열을 기반으로 점수를 계산하고 매개 변수를 쉽게 조정하는 것입니다.
내 점수 공식이 아래와 같다고 가정합니다.
score = a * column_1 + b * column_2 + c * column_3
쉽게 할 수 있도록 udf 또는 프로세스 (이전에 사용되지 않음)를 만들 수 있습니까?
그래서 getScore (a, b, c)와 같은 함수가 있습니다. 다음과 같이 할 수 있습니다.
select
column_1,
column_2,
column_3,
getScore(0.5, 0.1, 0.4) as score
from table
또는
update table set score = getScore(0.5, 0.1, 0.4)
감사!
해결 방법
예.
CREATE FUNCTION `getScore`(`a` DECIMAL(12,4), `b` DECIMAL(12,4), `c` DECIMAL(12,4)) RETURNS DECIMAL(12,4)
BEGIN
RETURN a + b + c;
END
SELECT getScore(0.3, 0.4, 0.5)
-> 1.2000
그러나 테이블의 일부 값이 필요한 경우 해당 값도 매개 변수로 포함해야합니다.
SELECT getScore(column1, column2, column3, 0.5, 0.1, 0.4) AS score FROM table
참조 페이지 https://stackoverflow.com/questions/18618804
반응형
'MySql' 카테고리의 다른 글
MySQL Null이 아닌 경우 필드 업데이트 (0) | 2020.12.24 |
---|---|
MySQL com.mysql.jdbc.Driver 설치 방법 "클래스 이름이 com.mysql.jdbc.Driver 인 드라이버를 찾을 수 없습니다"? (0) | 2020.12.23 |
MySQL PhpMyAdmin에서 모니터링 (0) | 2020.12.23 |
MySQL 하이브 출력을 예쁘게 인쇄하는 방법 (0) | 2020.12.23 |
MySQLi_connect를 사용하여 MySQL에 연결할 수 없습니다. (0) | 2020.12.23 |
댓글