X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Подсчет одинаковых ячеек в таблице
FordogeN
FordogeN
Topic Starter сообщение 22.11.2008, 3:16; Ответить: FordogeN
Сообщение #1


Старожил
******

Группа: User
Сообщений: 1877
Регистрация: 15.7.2008
Поблагодарили: 8 раз
Репутация:   1  


Нужно посчитать сколько в "столбце" ячеек с одинаковым содержимым и вывести в виде топ10 эти 10 само часто повторяющихся значений.


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ilyazh
ilyazh
сообщение 22.11.2008, 21:04; Ответить: ilyazh
Сообщение #2


Завсегдатай
*****

Группа: User
Сообщений: 614
Регистрация: 19.8.2009
Поблагодарили: 20 раз
Репутация:   3  


Я тоже бы хотел узнать ответ на данный вопрос, но могу сказать одно.
Надо использовать 2 таблицы - в первой хранить слова, как вы хотите, а во второй слово и сколько раз оно встречается.
Т.к. каждый раз перебирать все записи и считать их - не слабая нагрузка. Поэтому лучше сделать скрипт, который пересчитывает и записывает результаты в другую таблицу. Скрипт запускать кроном, например раз в 6 часов, чтобы он обновлял результаты. А на сайте выводить из второй таблицы чтобы нагрузка была минимальной.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
FordogeN
FordogeN
Topic Starter сообщение 23.11.2008, 0:30; Ответить: FordogeN
Сообщение #3


Старожил
******

Группа: User
Сообщений: 1877
Регистрация: 15.7.2008
Поблагодарили: 8 раз
Репутация:   1  


(ilyazh @ 22.11.2008, 23:04) *
Я тоже бы хотел узнать ответ на данный вопрос, но могу сказать одно.
Надо использовать 2 таблицы - в первой хранить слова, как вы хотите, а во второй слово и сколько раз оно встречается.
Т.к. каждый раз перебирать все записи и считать их - не слабая нагрузка. Поэтому лучше сделать скрипт, который пересчитывает и записывает результаты в другую таблицу. Скрипт запускать кроном, например раз в 6 часов, чтобы он обновлял результаты. А на сайте выводить из второй таблицы чтобы нагрузка была минимальной.

Да, но есть две проблемы:
1. Я не умею:)
2. У меня веб-сервис, на котором желательно чтоб все обновлялось моментально!


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 23.11.2008, 11:25; Ответить: ZiTosS
Сообщение #4


Ваша совесть
*******

Группа: User
Сообщений: 5148
Регистрация: 18.2.2008
Из: Нижний Новгород
Поблагодарили: 0 раз
Репутация:   8  


Извиняюсь что так долго не отвечал. И так...

(ilyazh @ 22.11.2008, 20:04) *
Я тоже бы хотел узнать ответ на данный вопрос, но могу сказать одно.
Надо использовать 2 таблицы - в первой хранить слова, как вы хотите, а во второй слово и сколько раз оно встречается.
Т.к. каждый раз перебирать все записи и считать их - не слабая нагрузка. Поэтому лучше сделать скрипт, который пересчитывает и записывает результаты в другую таблицу. Скрипт запускать кроном, например раз в 6 часов, чтобы он обновлял результаты. А на сайте выводить из второй таблицы чтобы нагрузка была минимальной.

Глупости!
SQL очень развитый язык, и схема определения количества повторяющихся полей довольна проста
SELECT [поле], COUNT([поле]) as count FROM [таблица] GROUP BY([поле]) ORDER BY count DESC

А теперь объясняю
Выбираем из таблицы [таблица] записи(в данном варианте все записи), по полю [поле], также присоединяем к выбору поле с количеством элементов, предварительно сгруппировав записи по полю [поле], далее сортируем по количеству в обратном порядке


А теперь замечания
Если ты при группировке по какому-либо полю попытаешься вывести другие поля, то в данных полях будет содержаться информация первой записи для каждой группировки. Поэтому группировка обычно используется для объединения и подсчета данных. И используются данные поля по которому группируем, либо специально созданные нами для уточнения каких-либо данных(в нашем примере это поле count)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
FordogeN
FordogeN
Topic Starter сообщение 23.11.2008, 14:13; Ответить: FordogeN
Сообщение #5


Старожил
******

Группа: User
Сообщений: 1877
Регистрация: 15.7.2008
Поблагодарили: 8 раз
Репутация:   1  


У меня вышел такой запрос:

table1 - таблица с записями
table2 - таблица, в которой повторяются Id

SELECT table1.e_id, table1.w_id, table1.title, table1.contents, COUNT(table1.e_id) AS cnt FROM table1 LEFT JOIN table2 ON table1.e_id=table2.e_id WHERE table2.e_id IS NOT NULL GROUP BY table1.e_id ORDER BY cnt DESC LIMIT 20

Получился модуль который выводит в виде топа самые комментируемые записи!
www.livekeep.ru - в правом нижнем углу смотрите


А вот запрос по сабжу:
SELECT field1, COUNT(field1) AS cnt FROM table1 GROUP BY field1 ORDER BY cnt DESC LIMIT 10

зы. С обоими запросами помог парниша с нуледа.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 23.11.2008, 16:13; Ответить: ZiTosS
Сообщение #6


Ваша совесть
*******

Группа: User
Сообщений: 5148
Регистрация: 18.2.2008
Из: Нижний Новгород
Поблагодарили: 0 раз
Репутация:   8  


Хех, а я тебе тоже самое выше написал :) Притом ты не говорил, что тебе нужно объединить таблицы
А что за нулед я не понял?!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ilyazh
ilyazh
сообщение 23.11.2008, 17:05; Ответить: ilyazh
Сообщение #7


Завсегдатай
*****

Группа: User
Сообщений: 614
Регистрация: 19.8.2009
Поблагодарили: 20 раз
Репутация:   3  


наверно _nulled.ws
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
FordogeN
FordogeN
Topic Starter сообщение 23.11.2008, 19:47; Ответить: FordogeN
Сообщение #8


Старожил
******

Группа: User
Сообщений: 1877
Регистрация: 15.7.2008
Поблагодарили: 8 раз
Репутация:   1  


да, nulled.ws
зы. как на мну самый толковый форум по нашей теме

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) 2 одинаковых сайта на одну тему. Защита
13 OldSpice 2107 31.8.2020, 15:27
автор: Sleep0ff
Открытая тема (нет новых ответов) Помогите с калькулятором на подсчет обоев в ас2?
0 Mim_mw 2173 27.2.2014, 10:20
автор: Mim_mw
Открытая тема (нет новых ответов) Как переместить значения ячеек таблицы при клике на первую (Javascript, Ajax, jQuery)
2 anethum 6014 2.9.2013, 13:08
автор: -RayOfLight-
Открытая тема (нет новых ответов) Подсчет количества объявлений
7 bogdan281989 1181 31.10.2012, 19:10
автор: matroskin8
Открытая тема (нет новых ответов) Помогите сделать подсчет в таблице из из базы данных на сайте
2 Сергей климанов 2838 13.7.2012, 23:40
автор: -Сергей климанов-


 



RSS Текстовая версия Сейчас: 1.11.2020, 1:31
Дизайн