powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / отфильтровать записи таблицы сложной структуры. продолжение.
2 сообщений из 2, страница 1 из 1
отфильтровать записи таблицы сложной структуры. продолжение.
    #38434609
kt368
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Есть таблица
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE `raw_data` (
  `id` bigint(11) NOT NULL AUTO_INCREMENT,
  `case_index` int(10) DEFAULT NULL,
  `index_in_case` tinyint(3) unsigned DEFAULT NULL,
  `ampl` float DEFAULT NULL,
  `ph` float DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `case_index` (`case_index`)
) ENGINE=InnoDB AUTO_INCREMENT=6613491313 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED



В ней хранятся числовые значения связок из двух графиков.
Столбец 'id' содержит глобальный индекс (AUTO_INCREMENT),
столбец 'case_index' - индекс связки графиков, case_index инкрементируется при введении данных новой связки графиков,
столбец 'index_in_case' - номер отсчёта связки графиков по оси x,
столбцы `ampl` и `ph` - значения графиков этой связки по оси y.

Вот пример содержимого таблицы:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
+----+------------+---------------+--------+---------+
| id | case_index | index_in_case | ampl   | ph      |
+----+------------+---------------+--------+---------+
|  1 |          1 |             0 | 63     |     180 |
|  2 |          1 |             1 | 62     |     175 |
|  3 |          1 |             2 | 63     |     175 |
|  4 |          2 |             0 | 63     |     180 |
|  5 |          2 |             1 | 62     |     175 |
|  6 |          2 |             2 | 63     |     175 |
|  7 |          3 |             0 | 2      |     180 |
|  8 |          3 |             1 | 2      |     170 |
|  9 |          3 |             2 | 2      |     170 |
| 10 |          4 |             0 | 2      |     180 |
| 11 |          4 |             1 | 2      |     170 |
| 12 |          4 |             2 | 2      |     170 |
+----+------------+---------------+--------+---------+



Видно, что данные в таблицах с case_index=1 и case_index=2 одинаковые. Также с таблицами с case_index=3 и case_index=4.

Задача удалить повторяющиеся таблицы, чтоб получилась такая таблица:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
+----+------------+---------------+--------+---------+
| id | case_index | index_in_case | ampl   | ph      |
+----+------------+---------------+--------+---------+
|  1 |          1 |             0 | 63     |     180 |
|  2 |          1 |             1 | 62     |     175 |
|  3 |          1 |             2 | 63     |     175 |
|  7 |          3 |             0 | 2      |     180 |
|  8 |          3 |             1 | 2      |     170 |
|  9 |          3 |             2 | 2      |     170 |
+----+------------+---------------+--------+---------+


По совету qwerty112 ( http://www.sql.ru/forum/1050163/otfiltrovat-zapisi-tablicy-slozhnoy-struktury )
пробовал узнать case_index повторяющихся таблиц, для чего выполнял следующее:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
select 
    t1.case_index as id1, t2.case_index as id2, a.cnt
from
    raw_data t1
        inner join
    raw_data t2 ON t1.ampl = t2.ampl and t1.ph = t2.ph
        and t1.case_index <> t2.case_index
        inner join
    (select 
        case_index as ci, count(*) as cnt
    from
        raw_data
    group by case_index) a ON t1.case_index = a.ci
group by t1.case_index , t2.case_index
having count(*) = a.cnt



При запуске этого запроса над небольшой таблицей с max(case_index)=100 - всё ОК, запрос отрабатывает правильно. Моя же таблица имеет max(case_index)=65 000 000, при запуске этого же скрипта mysql выдает ошибку:
Код: sql
1.
Error Code: 1206. The total number of locks exceeds the lock table size



Правильным ли я путём иду к решению начальной проблемы? Как обойти вышеописанную ошибку?
...
Рейтинг: 0 / 0
отфильтровать записи таблицы сложной структуры. продолжение.
    #38434954
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
SELECT MIN(case_index),index_in_case,ampl,ph
FROM  raw_data
GROUP BY   ndex_in_case,ampl,ph
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / отфильтровать записи таблицы сложной структуры. продолжение.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]