0
작업 및 지불과 다 대일 관계가있는 중복 user_ids가있는 테이블이 있습니다.그룹 최대 MYSQL을 사용하여 테이블을 업데이트 하시겠습니까?
태스크에 최대 그룹 완료를 사용하여 태스크 완료 백분율이 가장 높은 행을 리턴했습니다. 그러나 동일한 테이블에서 가장 높은 지불 완료 통계로이 새 테이블을 업데이트하고 싶습니다. 예를 들어
는 :
id date taskid payid task_completion pay_value
4722 2007-11-08 16:20:14 2 3 7.14 0
4722 2007-11-08 16:20:14 3 3 0.00 0
4722 2007-11-08 16:20:14 5 3 0.00 0
4722 2007-11-08 16:20:14 2 6 7.14 40
4722 2007-11-08 16:20:14 3 6 0.00 40
4722 2007-11-08 16:20:14 5 6 0.00 40
4724 2007-11-20 15:32:40 4 7 25.71 105
4726 2008-01-28 11:44:50 7 8 7.14 52
4726 2008-01-28 11:44:50 8 8 34.29 52
4726 2008-01-28 11:44:50 10 8 65.71 52
4726 2008-01-28 11:44:50 7 9 7.14 24
4726 2008-01-28 11:44:50 8 9 34.29 24
그래서 다음과 같이 (고유 ID를 가진) 새 테이블을 만드는 작업 완료에 GroupWise에 최대를 사용했다 :
id date taskid payid task_completion pay_value
4722 2007-11-08 16:20:14 2 3 7.14 0
4724 2007-11-20 15:32:40 4 7 25.71 105
4726 2008-01-28 11:44:50 10 8 65.71 52
문제는 ID에 대한 것입니다 4722 가장 높은 pay_value 및 payid가 결과 테이블에 삽입되지 않았습니다.
나는 (이 선택을 사용하여) 형태로이를 업데이 트하려는 :
SELECT
s1.payid,
s1.pay_value,
FROM
f_tbl s1
LEFT JOIN
f_tbl s2 ON s1.cashid = s2.cashid
AND s1.pay_value > s2.pay_value
WHERE
s2.cash_id IS NULL
GROUP BY user_id;
그것을이 쿼리를 기반으로 최종 테이블을 갱신하는 것은 불가능하다는 것을 보인다 그러나. 내가 어려움을 겪었습니다. 도움을 주셔서 감사합니다.
조회에 cashid 당 최소 pay_value 선택 (그래서 당신은 4726 52이어야한다 얻고있는 결과를하지만, 24) : 조회를 가정하는 것은 정확 's1.pay_value