programing

업데이트 시 MYSQL(MariaDB) 계산된 백분율 열

newsource 2023. 8. 28. 21:03

업데이트 시 MYSQL(MariaDB) 계산된 백분율 열

트리거, 교차 조인 또는 CTE를 사용하지 않도록 삽입에서 업데이트하는 계산된(가상?) 열을 달성하려고 합니다.제가 원하는 것은 한 필드(Col1)별로 그룹화하고 표에 있는 전체 중 지정된 행의 백분율을 계산하는 것입니다.예:

+------+-----+------+ | Col1 | Amt | Pct | +------+-----+------+ | foo | 10 | 0.5 | | foo | 5 | 0.25 | | bar | 15 | 1 | | foo | 5 | 0.25 | +------+-----+------+ 새 행 삽입...{Col1: bar, Amt: 5} +------+-----+------+ | Col1 | Amt | Pct | +------+-----+------+ | foo | 10 | 0.5 | | foo | 5 | 0.25 | | bar | 15 | 0.75 | | foo | 5 | 0.25 | | bar | 5 | 0.25 | +------+-----+------+ 어떤 도움이든 감사합니다.저는 포크를 포함한 다양한 게시물을 검색해봤지만 MariaDB에서 이에 접근할 수 있는 가상 칼럼 방법을 찾지 못했습니다.

계산된 열의 각 행에 있는 값은 테이블의 다른 행에 있는 값에 종속될 수 없습니다.

계산된 열 대신 뷰를 고려할 수 있습니다.이것이 뷰의 정의입니다.모든 금액의 합계가 필요합니다.

SELECT a.Col1, a.Amt,  
       (100.0 * A.Amt / B.Tot) Pct
  FROM tbl a
  JOIN (SELECT SUM(Amt) Tot FROM tbl)

언급URL : https://stackoverflow.com/questions/52238368/mysql-mariadb-calculated-percentage-column-on-update