I는 다음과 같습니다 스키마가 있습니다 SQL 산술과 결합 세 개의 열은
+----------+
| tour |
+----------+
| id |
| name |
+----------+
+----------+
| golfer |
+----------+
| id |
| name |
| tour_id |
+----------+
+-----------+
| stat |
+-----------+
| id |
| round |
| score |
| golfer_id |
+-----------+
그래서 본질적으로 골프 투어가에서 골프를 치는 사람의 X 번호가 있습니다. 골퍼는 X 개의 통계를 갖습니다. 상태 표의 원형 열에는 숫자 (1, 2, 3, 4 ... 등) 만 있습니다. 그들은 반드시 다른 하나 다음에 반드시있는 것은 아니지만 그들은 독특합니다.
이제는 "PGA"투어에 속한 모든 골퍼와 각 골퍼를 찾고 마지막 2 라운드에서 점수를 계산하고 싶습니다. 마지막 2 라운드는 근본적으로 가장 큰 두 숫자가있는 골퍼를위한 상태 테이블의 행입니다. 그래서 "Tiger Woods"라는 골퍼가 1, 3, 6, 10 라운드에서 경기를했다고 가정 해 봅시다. 6 라운드와 10 라운드에서 점수를 계산하고 싶습니다. 또 다른 요구 사항은 아직까지 골퍼에게 보여주고 싶지 않다는 것입니다. 적어도 두 차례에 걸쳐서 연주 했어.
나는 이것을 얻으려는 몇 가지 방법을 시도했지만 항상 자신을 얽히게했습니다.
+1 매우 섹시한 답변입니다. – Hogan
@Hogan, 감사합니다. 이것은 창 함수가 있기 전에 수년 동안 사용해 온 트릭입니다. 마지막 두 레코드를 찾으려고 할 때 매우 효율적입니다. 그룹화의 각 레코드에 대해 마지막 두 개를 찾으려고 할 때 효율적이지 않습니다. –