변화하는 요구 사항으로 인해 몇 달 전에 만든 인터페이스를 다시 방문했습니다. 더 많은 기능, 더 많은 데이터. 데이터 over here의 까다로운 주문 요구 사항에 대한 도움을 받았습니다. 그러나 요구 사항이 변경되었거나보다 정확하고 확장되었습니다. 나는 지금 몇 시간 동안 땜질하고 있었고 성공을 거두지 못했습니다. SO이 나를 다시 뭉개지게 할 수도 있습니다.MySQL 복잡한 ORDER BY 문제
다음은 데이터베이스에 표시되는 단순화 된 샘플 데이터 및 주문 방법입니다.
SELECT *
FROM reports as r
ORDER BY
FIND_IN_SET(r.job_id, (SELECT GROUP_CONCAT(job_id ORDER BY id DESC)
FROM reports
WHERE action_id = 1)),
r.action_id
을하지만 계정에 반복을 doesen't :
**RAW** **DESIRED** ╔════╦════════╦═══════════╦═══════════╗ ╔════╦════════╦═══════════╦═══════════╗ ║ id ║ job_id ║ action_id ║ iteration ║ ║ id ║ job_id ║ action_id ║ iteration ║ ╠════╬════════╬═══════════╬═══════════╣ ╠════╬════════╬═══════════╬═══════════╣ ║ 1 ║ 1 ║ 1 ║ 0 ║ ║ 14 ║ 6 ║ 1 ║ 0 ║ ║ 2 ║ 1 ║ 2 ║ 0 ║ ║ 16 ║ 6 ║ 2 ║ 0 ║ ║ 3 ║ 2 ║ 1 ║ 0 ║ ║ 12 ║ 1 ║ 1 ║ 1 ║ ║ 4 ║ 3 ║ 1 ║ 0 ║ ║ 13 ║ 1 ║ 2 ║ 1 ║ ║ 5 ║ 4 ║ 1 ║ 0 ║ ║ 15 ║ 1 ║ 3 ║ 1 ║ ║ 6 ║ 3 ║ 2 ║ 0 ║ ║ 8 ║ 5 ║ 1 ║ 0 ║ ║ 7 ║ 3 ║ 3 ║ 0 ║ ║ 10 ║ 5 ║ 2 ║ 0 ║ ║ 8 ║ 5 ║ 1 ║ 0 ║ ║ 11 ║ 5 ║ 3 ║ 0 ║ ║ 9 ║ 4 ║ 2 ║ 0 ║ ║ 5 ║ 4 ║ 1 ║ 0 ║ ║ 10 ║ 5 ║ 2 ║ 0 ║ ║ 9 ║ 4 ║ 2 ║ 0 ║ ║ 11 ║ 5 ║ 3 ║ 0 ║ ║ 4 ║ 3 ║ 1 ║ 0 ║ ║ 12 ║ 1 ║ 1 ║ 1 ║ ║ 6 ║ 3 ║ 2 ║ 0 ║ ║ 13 ║ 1 ║ 2 ║ 1 ║ ║ 7 ║ 3 ║ 3 ║ 0 ║ ║ 14 ║ 6 ║ 1 ║ 0 ║ ║ 3 ║ 2 ║ 1 ║ 0 ║ ║ 15 ║ 1 ║ 3 ║ 1 ║ ║ 1 ║ 1 ║ 1 ║ 0 ║ ║ 16 ║ 6 ║ 2 ║ 0 ║ ║ 2 ║ 1 ║ 2 ║ 0 ║ ╚════╩════════╩═══════════╩═══════════╝ ╚════╩════════╩═══════════╩═══════════╝
**EXPLAINED** ╔════╦════════╦═══════════╦═══════════╗ ║ id ║ job_id ║ action_id ║ iteration ║ ╠════╬════════╬═══════════╬═══════════╣ ORDERED BY: ║ 14 ║ 6 ║ 1 ║ 0 ║ ║ 16 ║ 6 ║ 2 ║ 0 ║ The largest id with action_id of 1 ╠════╬════════╬═══════════╬═══════════╣ followed by all of the rows with the ║ 12 ║ 1 ║ 1 ║ 1 ║ same job_id and iteration number as ║ 13 ║ 1 ║ 2 ║ 1 ║ the first, ordered by ascending ║ 15 ║ 1 ║ 3 ║ 1 ║ action_id. ╠════╬════════╬═══════════╬═══════════╣ ║ 8 ║ 5 ║ 1 ║ 0 ║ Then the next largest id with ║ 10 ║ 5 ║ 2 ║ 0 ║ action_id = 1, etc. ║ 11 ║ 5 ║ 3 ║ 0 ║ ╠════╬════════╬═══════════╬═══════════╣ ║ 5 ║ 4 ║ 1 ║ 0 ║ ║ 9 ║ 4 ║ 2 ║ 0 ║ ╠════╬════════╬═══════════╬═══════════╣ ║ 4 ║ 3 ║ 1 ║ 0 ║ ║ 6 ║ 3 ║ 2 ║ 0 ║ ║ 7 ║ 3 ║ 3 ║ 0 ║ ╠════╬════════╬═══════════╬═══════════╣ ║ 3 ║ 2 ║ 1 ║ 0 ║ ╠════╬════════╬═══════════╬═══════════╣ ║ 1 ║ 1 ║ 1 ║ 0 ║ ║ 2 ║ 1 ║ 2 ║ 0 ║ ╚════╩════════╩═══════════╩═══════════╝
나는 현재이 같은 ORDER BY
을 사용하고 있습니다. 나는 그 논리에 맞는 부분을 볼 수 없다. 아무도 도움을 줄 수 있는가?
감사합니다.