У меня есть таблица с широтой и долготой столбца и хочу, чтобы точное совпадение группы (только) тандемных значений на 2 столбца.
Строки таблицы:
/* Points Table */ time |lat |long 113 |2.1 |5.8 114 |2.1 |5.6 -Set as Group 115 |2.1 |5.6 -Set as Group 116 |2.1 |5.6 -Set as Group 117 |2.1 |5.6 -Set as Group 118 |2.3 |5.2 119 |2.4 |5.3 120 |2.5 |5.3 -Set as Group 121 |2.5 |5.3 -Set as Group 122 |2.6 |5.3 123 |2.1 |5.6 -Set as Group 201 |2.1 |5.6 -Set as Group 202 |2.1 |5.6 -Set as Group 203 |2.5 |5.3
Результат должен быть:
/* Points Table */ time |lat |long 113 |2.1 |5.8 114 |2.1 |5.6 -Grouped as 1 with first tandem time 118 |2.3 |5.2 119 |2.4 |5.3 120 |2.5 |5.3 -Grouped as 1 with first tandem time 122 |2.6 |5.3 123 |2.1 |5.6 -Grouped as 1 with first tandem time 203 |2.5 |5.3
Я хочу группировать только значения Tandem, в приведенном выше мы имеем два временных тандема значений 2.1 & 5.6
а группа разбита. (для тестирования можно работать на http://sqlfiddle.com/#!2/5d196 ). 😉
Вы можете сделать это с помощью PHP:
$query = mysqli_query("SELECT time, lat, `long` FROM Points ORDER BY time"); // output header row echo str_pad('time', 8) .'|'; echo str_pad('lat', 7) .'|'; echo "long\n"; $prevLat = $prevLong = ''; while ($row = mysqli_fetch_assoc($query)) { if ($row['lat'] === $prevLat && $row['long'] === $prevLong) { // if this row's lat and long values are the same as the // previous row's values, skip this row. continue; } $prevLat = $row['lat']; $prevLong = $row['long']; echo str_pad($row['time'], 8) .'|'; echo str_pad($row['lat'], 7) .'|'; echo "{$row['long']}\n"; }
Вот пример: http://codepad.org/c0SjA058
Попробуй это:
SELECT time, lat, long FROM Points GROUP BY lat, long