|
|
|
| Всех с наступающим рождеством! Снова нужна ваша помощь. Нужно составить рейтиг голосования персон. Голосуют не за одну персону а за две.. Т.е. Структура таблицы примерно следующая:
+-----+-----+
| lid | gid |
+-----+-----+
| 1 | 4 |
| 22 | 32 |
| 5 | 7 |
| 7 | 8 |
| 12 | 13 |
| 5 | 8 |
| 32 | 40 |
| 7 | 22 |
+-----+-----+
|
Где lid - это меньший id, gid - больший id.
Нужно определить, какие люди встречаются чаще... Т.е.:
+----+-----+
| id | cnt |
+----+-----+
| 7 | 3 |
| 22 | 2 |
| 32 | 2 |
| 5 | 2 |
| 8 | 2 |
| 12 | 2 |
| 1 | 1 |
| 13 | 1 |
| 4 | 1 |
+----+-----+
|
Желательно это минимальным количеством запросов сделать. Возможно ли что то придумать здесь или лучше дублировать каждую запись в исходной таблице таким образом:
+-----+-----+
| lid | gid |
+-----+-----+
| 1 | 4 |
| 4 | 1 |
| 22 | 32 |
| 32 | 22 |
| 5 | 7 |
| 7 | 5 |
| 7 | 8 |
| 8 | 7 |
| 12 | 13 |
| 13 | 12 |
| 5 | 8 |
| 8 | 5 |
| 32 | 40 |
| 40 | 32 |
| 7 | 22 |
| 22 | 7 |
+-----+-----+
|
Можно было бы ещё конечно хранить счетчик для каждой персоны в отдельной таблице, но эту статистику надо хранить по времени за определенный период...
Заранее спасибо! | |
|
|
|
|
|
|
|
для: Евгений Петров
(04.01.2007 в 19:33)
| | Не понятна структура таблиы lid-gid - что это это за идентификаторы и связаны ли они друг с другом - требуется просто подсчитать количество вхождений каждого из них или что-то другое? Или они содержат идентификаторы персон за которых голосуют и нужно считать одновременно и в столбце lid и в столбце gid? | |
|
|
|
|
|
|
|
для: cheops
(04.01.2007 в 19:52)
| | lid и gid - это идентификаторы неких персон, за которых голосует народ. Голосует не за каждую персону в отдельности а за пару. lid всегда меньше чем gid чтобы не путать местами. Есть ещё таблица с персонами, там у каждой персоны есть свой id. lid и gid - это и есть эти id персон. А посчитать нужно за какую персону чаще всего голосуют в паре с кем то. Причем вывести в порядке убывания рейтинга. | |
|
|
|
|
|
|
|
для: Евгений Петров
(04.01.2007 в 19:33)
| | Временную таблицу можно использовать? Вообще гораздо удбнее было бы, если хранить каждый id в отдельной записи. | |
|
|
|
|
|
|
|
для: cheops
(04.01.2007 в 21:35)
| | Нет, временные нельзя. Наверное все таки придется дублировать записи... Спасибо за помощь! | |
|
|
|