시간 범위로 행 간의 필드의 MAX를 함유 SELECT 행 :MySQL은 : 겹치는 시간
+-----+-------+-------+-------------+
| ID | start | stop | value |
+-----+-------+-------+-------------+
| 1 | 1:00 | 3:00 | 6 |
| 2 | 5:00 | 9:00 | 3 |
| 3 | 6:00 | 10:00 | 1 |
+-----+-------+-------+-------------+
이 내 원하는 출력 : 경우
+-----+-------+-------+-------------+
| ID | start | stop | value |
+-----+-------+-------+-------------+
| 1 | 1:00 | 3:00 | 6 |
| 2 | 5:00 | 9:00 | 3 |
+-----+-------+-------+-------------+
시작하고 (타임 스탬프 중첩 정지 행 2 & 3)에서 볼 수 있듯이 MAX()
이 value
인 행을 원합니다.
sort(timespans) // by 'value', highest first
results = []
for (t in timespans)
for (row in results)
overlap =
(row.start < t.start && t.start < row.stop) // t.start within row
|| (row.start < t.stop && t.stop < row.stop) // t.stop within row
|| (t.start < row.start && row.stop < t.stop) // t encapsulates row
if (!overlap)
results.push(t)
나는이 데이터 세트가 문제를 제대로 대표 확신 아니에요. http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-query를 참조하십시오. – Strawberry
기간이 겹치는 두 개의 행에 '값'이 같은 경우 어떻게해야합니까? –
'value'는 실제로 내 실제 문제의 삽입 타임 스탬프입니다. 이것은 결코 일어나서는 안됩니다. – thedarklord47