Как посчитать частотность слов?

Хочу построить облако тегов наиболее лайкабелтных слов ВКонтакте.

http://dl.dropbox.com/u/412791/Screenshots/hackernews.png



Есть база данных в PostgreSQL. Вот демо с запроса.

SELECT vk_groups.screen_name, 
	vk_posts."text", 
	vk_posts."date", 
	vk_posts.comments_count, 
	vk_posts.likes_count, 
	vk_posts.reposts_count
FROM vk_posts INNER JOIN vk_groups ON vk_posts.owner_id = vk_groups."id"
WHERE vk_posts.from_id = vk_posts.to_id
ORDER BY vk_posts."date" DESC



Файл


Field Type Allow Null Default Value
id int4 No nextval('vk_groups_id_seq'::regclass)
name varchar(255) Yes
screen_name varchar(255) Yes
link varchar(255) Yes
photo_big varchar(255) Yes
vk_type varchar(255) Yes
updated_at timestamp(6) Yes




Field Type Allow Null Default Value
owner_id int4 No
post_id int4 No
from _id int4 Yes
to_id int4 Yes
text text Yes
date timestamp(6) Yes
attachment_type varchar(255) Yes
copy_owner_id int4 Yes
copy_post_id int4 Yes
comments_count int4 Yes
likes_count int4 Yes
reposts_count int4 Yes
updated_at timestamp(6) Yes


Мне для визуализации нужно получить таблицу вида


Слово Частота Лайки
... ... ...


Частота - количество употребления слова в базе
Лайки - SUM(частота употребления слова в посте-ячейке * кол-во лайков у этого поста)

Дальше я уже это знаю как обработать.


Можно ли составить нужную мне таблицу средствами PostgeSQL? Как? Помогите составить запрос =)

Back to top

(С) Виктор Вислобоков, 2008-2023