Мне нужно отсортировать для каждого столбца person_id, где приоритеты порядка:
- актуально: 1> 0
- тип: Reg> Zee = Con
- дата_старт: DESC
Итак, из данных:
+----+-----------+------+------------+------------+--------+
| id | person_id | type | date_start | date_end | actual |
+----+-----------+------+------------+------------+--------+
| 1 | 1 | Reg | 01-01-2018 | 31-01-2018 | 0 |
+----+-----------+------+------------+------------+--------+
| 2 | 1 | Con | 01-02-2019 | 01-05-2019 | 0 |
+----+-----------+------+------------+------------+--------+
| 3 | 2 | Reg | 01-01-2018 | 31-05-2018 | 0 |
+----+-----------+------+------------+------------+--------+
| 4 | 2 | Reg | 01-05-2018 | 31-07-2019 | 1 |
+----+-----------+------+------------+------------+--------+
| 5 | 2 | Con | 01-06-2018 | 31-04-2020 | 1 |
+----+-----------+------+------------+------------+--------+
| 6 | 2 | Zee | 31-05-2019 | 31-08-2019 | 1 |
+----+-----------+------+------------+------------+--------+
Мне нужен запрос для person_id = 1, результат:
+----+-----------+------+------------+------------+--------+
| id | person_id | type | date_start | date_end | actual |
+----+-----------+------+------------+------------+--------+
| 1 | 1 | Reg | 01-01-2018 | 31-01-2018 | 0 |
+----+-----------+------+------------+------------+--------+
| 2 | 1 | Con | 01-02-2019 | 01-05-2019 | 0 |
+----+-----------+------+------------+------------+--------+
А для person_id = 2 результат:
+----+-----------+------+------------+------------+--------+
| id | person_id | type | date_start | date_end | actual |
+----+-----------+------+------------+------------+--------+
| 4 | 2 | Reg | 01-05-2018 | 31-07-2019 | 1 |
+----+-----------+------+------------+------------+--------+
| 6 | 2 | Zee | 31-05-2019 | 31-08-2019 | 1 |
+----+-----------+------+------------+------------+--------+
| 5 | 2 | Con | 01-06-2018 | 31-04-2020 | 1 |
+----+-----------+------+------------+------------+--------+
| 3 | 2 | Reg | 01-01-2018 | 31-05-2018 | 0 |
+----+-----------+------+------------+------------+--------+
(Кроме того, но это дополнительный вопрос, мне нужно взять самый старый start_date из запроса, но ТОЛЬКО если между каждой строкой сохранялась непрерывность даты)