Группировать точные значения тандема из 2 столбцов?

У меня есть таблица с двумя столбцами широты и долготы, и я хочу группировать точные совпадения (только) тандемные значения на 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

Я хочу сгруппировать только значения тандема, выше у нас есть два раза тандем 2.1 & 5.6 значения и группа разбиты. (для тестирования можно работать на http://sqlfiddle.com/).;)

2 ответа

Решение

Вы можете сделать это с помощью 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
Другие вопросы по тегам