이 쿼리에 대한어떻게이 쿼리를 만들 수 있습니까?
----------------------------------------------
id | username | point | level | created_date
----------------------------------------------
1 | name_a | 1 | 1 | 2011-08-01
2 | name_a | 2 | 2 | 2011-08-02
3 | name_b | 5 | 1 | 2011-08-02
3 | name_c | 6 | 1 | 2011-08-02
4 | name_d | 1 | 1 | 2011-08-01
5 | name_d | 3 | 1 | 2011-08-02
5 | name_d | 5 | 2 | 2011-08-03
4 | name_e | 5 | 1 | 2011-08-01
5 | name_e | 5 | 2 | 2011-08-02
5 | name_e | 5 | 3 | 2011-08-03
----------------------------------------------
요구 사항을 시험하기위한 테이블은 쿼리, 사용자 이름 (같은 하나 개의 쿼리에서 가능한 한 많은) 테이블의 포인트입니다.
- 각 레벨에서 사용자의 점수 합계를 기준으로 정렬.
- 사용자가 동일한 레벨에서 2 점을 얻은 경우 최신 점수 만받습니다.
-------------------- username | tpoint| -------------------- name_d | 8 | name_b | 5 | name_a | 3 | --------------------
이 무시되었습니다 : 사용자 이름으로name_e
및name_c
- 그룹은
- 총 점수는 레벨 당 점수의 10
- 최대 5
출력 샘플입니다해야합니다.
나는이 하나가 가까이 생각하지만, 당신은 규칙 2가 숨겨져 점수 – Mfoo
을 확인하는 CASE 문을 추가해야합니다? – duedl0r
먼저 created_date가 정렬 된 테이블을 가져옵니다. 그런 다음 사용자 이름과 레벨에 대해 GROUP BY를 수행합니다.이 값은 created_date DESC로 정렬 된 최신 값을 포인트로 제공합니다. –