MySQL удаляет дублирующиеся строки данных на SELECT - PullRequest
2 голосов
/ 19 апреля 2011

У меня есть таблица, в которой я хочу отфильтровать дублирующиеся данные при использовании операции SELECT, сама таблица содержит такие данные:

|=======|
| SPEED |
|=======|
|  100  |
|  100  |
|   90  |
|   80  |
|   80  |
|  100  |
|   80  |
|=======|

То, что я хочу, это что-то вроде этого, обратите внимание, что порядок все еще нетронут:

|=======|
| SPEED |
|=======|
|  100  |
|   90  |
|   80  |
|  100  |
|   80  |
|=======|

DISTINCT или GROUP BY не работает, так как отбрасывает все дублированные данные

Почему мне нужны такие данные, потому что я хочу нарисовать диаграмму, используя эти данные, уменьшив узел (удаляя дублированные данные в некоторых последовательностях), чтобы диаграмма была менее загруженной и быстрее отображалась

1 Ответ

1 голос
/ 19 апреля 2011

Отредактировано, поскольку вопрос был уточнен.

Чтобы создать что-то подобное, в вашей таблице должен быть другой столбец, назовем его Id.Моя тестовая таблица выглядит следующим образом:

CREATE TABLE `yourtable` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Speed` int(11) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=MyISAM

Чтобы проверить, может ли следующая строка иметь одинаковое значение для скорости поля, вы можете просто использовать LEFT JOIN и пропустить все данные, где обазначения равны.

Попробуйте это:

SELECT A.Id, A.Speed, B.* 
FROM yourtable AS A
LEFT JOIN yourtable AS B ON A.Id+1 = B.Id
WHERE A.Speed != B.Speed OR ISNULL(B.Speed);
...