powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по группировке
5 сообщений из 5, страница 1 из 1
Вопрос по группировке
    #39688155
araman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно сгруппировать 10000 сайтов по одинаковым шаблонам. Имеем для каждого сайта набор файлов шаблона, что решил сделать:

1) Сравниваем все файлы всех сайтов по совпадению Hash(в моем случае md5). Выделяем те файлы которые имеют более 10 совпадений из разных доменов.

Тут получился такой запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT 
    group_concat(domain), hash, count(*) as cnt
FROM
    hash.md5sum
group by hash
having cnt >= 10
order by cnt desc;



список доменов;хеш;кол-во совпадений
Т.е. такой то файл, с таким то хешем встречается столько то раз на таких то доменах.

Дальше как-то нужно сгруппировать сайты у которых общих совпадений файлов более 10.
В итоге нужно получить группы сайтов у которых скорее всего одинаковый шаблон(скажем так, если 10 одинаковых файлов присутствуют на сайтах, то скорее всего шаблон идентичен, или очень к этому приближен).

Т.е. есть 3 домена. На одном 100 файлов, на втором 80, на третьем 40
У первого и третьего совпало 15 файлов, т.е. они идентичны, считаем, что это один шаблон. А на втором совпало только 3 файла - выкидываем.

Структура такблицы сейчас выглядит так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
DROP TABLE IF EXISTS `md5sum`;
CREATE TABLE `md5sum` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `hash` char(32) NOT NULL,
  `path` varchar(255) NOT NULL,
  `domain` varchar(45) DEFAULT NULL,
  `filename` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `hash` (`hash`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;



Вообще не представляю даже с какого конца к этому подходить. Очень прошу помощи у толковых людей!
...
Рейтинг: 0 / 0
Вопрос по группировке
    #39688444
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
araman,

не удивительно, что вы не можете "родить" решение на SQL. Вы ведь даже на словах так объяснили, что совершенно непонятно, что именно нужно...

Попробуйте сформулировать задачу ещё раз. А еще лучше - приведите тестовый набор данных и тот результата, что по-вашему должен на них получиться.
Но в целом, создается впечатление, что задача на реляционное деление... Только у вас делитель пока - неопределен.

Кроме того, как бьть с такой ситуацией:
Есть три сайта, по 20 файлов на каждом. Первый и второй сайт пересекаются по файлам с 1-го по 10-й, второй и третий сайты пересекаются файлами с 11-го по 20-й. Первый и третий сайт, получается, не пересекаются вообще, от слова "совсем". Что в итоге пойдет в результирующую выборку?
...
Рейтинг: 0 / 0
Вопрос по группировке
    #39688501
araman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Щукина Анна спасибо за ответ!

Попытаюсь сформулировать задачу на более простом языке:
"Нужно найти сайты, в которых есть совпадения 10 и более файлов(по хешу md5, имена файлов разумеется могут быть разными). Не обязательно как они пересекаются. С 1-10 или с 11-20, просто если есть 10+ файлов у 100 сайтов, нужно и вывести эти 100 сайтов. Вывести сайты, которые содержат кол-во совпадений файлов от 10+"

Щукина Анна А еще лучше - приведите тестовый набор данных и тот результата, что по-вашему должен на них получиться.

Ну я же вроде приводил пример в первом сообщении:
авторТ.е. есть 3 домена. На одном 100 файлов, на втором 80, на третьем 40
У первого и третьего совпало 15 файлов, т.е. они идентичны, считаем, что это один шаблон. А на втором совпало только 3 файла - выкидываем.


Спасибо!
...
Рейтинг: 0 / 0
Вопрос по группировке
    #39688507
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
araman,

Вы не ответили на вопрос, что возвращать в описанном мною варианте расклада данных?
авторЕсть три сайта, по 20 файлов на каждом. Первый и второй сайт пересекаются по файлам с 1-го по 10-й, второй и третий сайты пересекаются файлами с 11-го по 20-й. Первый и третий сайт, получается, не пересекаются вообще, от слова "совсем". Что в итоге пойдет в результирующую выборку?
...
Рейтинг: 0 / 0
Вопрос по группировке
    #39688791
araman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Щукина Анна , в данном варианте получится следующая выборка:
Код: sql
1.
2.
1 2
2 3
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по группировке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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