Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.11;
Скачать: CL | DM;

Вниз

SQL-запрос - выборка популярных значений   Найти похожие ветки 

 
Vetek   (2004-06-11 21:05) [0]

Помогите с SQL-запросом !

SQL-запрос - выборка популярных значений

MySQL 3.x

Таблица  test57 с одним полем tet типа text
содержимое - почтовые домены - пример: (повторяются)
mail.ru
glasnet.ru
mail.ru
rambler.ru
mail.ru
au.ru

необходимо выбрать самые популярные.
- у меня получается только по отдельности:
("бьюсь" над запросом уже 3 дня)
узнать, какие есть вообще домены:
SELECT  DISTINCT  `tet` FROM  `test57`
и узнать популярность конкретного домена:
SELECT COUNT(`tet`) FROM `test57` where `tet` like("mail.ru")

а потом пробовал из списка доменов скриптом (php) каждый "пробивать" на популярность
и логить в файл, потом этот файл сортировать .. - но работает крайне медленно ..

подскажите, как можно решить поставленную задачу одним SQL- запросом ?
- и возможно ли вообще ?
- если MySQL не в состоянии выполнить такой запрос, то дайте пример запроса для MS Access

Заранее спасибо.


 
Anatoly Podgoretsky ©   (2004-06-11 21:10) [1]

Пример того как не надо делать, не соответствует ни одному типу нормализации, записи дублируются, ключа нет.

Сделай хотя бы
tet типа text
Requests Numeric


 
YurikGL ©   (2004-06-11 21:11) [2]


> - если MySQL не в состоянии выполнить такой запрос, то дайте
> пример запроса для MS Access


Вот это - классная фраза


 
Vetek   (2004-06-11 21:23) [3]

прошу без иронии, в SQL я новичок !
- а базу -ещё не выбрал


 
YurikGL ©   (2004-06-11 21:46) [4]


> Vetek   (11.06.04 21:23) [3]

Почитай про теорию БД и сделай нормальную структуру. Если не можешь - пиши сюда. Начинать тебе надо с структуры.


 
Mike Kouzmine ©   (2004-06-11 21:53) [5]

select tet, count(tet) from test57
group by tet
order by 1
having count(tet) > нижний предел популярности


 
Vetek   (2004-06-11 22:18) [6]

Mike Kouzmine спасибо, работает !
но что значит "order by 1"  ?
я немного переделал:
SELECT `tet` , COUNT( * ) FROM `test57` GROUP BY `tet` ORDER BY 2 DESC LIMIT 0, 30;


 
Vetek   (2004-06-11 22:20) [7]

YurikGL ©   (11.06.04 21:46) [4]
а какую сделать структуру ?
- я добавил индекс, стало работать в 50 (!) быстрее !


 
Anatoly Podgoretsky ©   (2004-06-11 22:27) [8]

Vetek   (11.06.04 22:20) [7]
Структуру я указал, будет работать еще в 100 раз быстрее.


 
Vetek   (2004-06-11 22:28) [9]

Anatoly Podgoretsky
спасибо, сейчас попробую


 
Anatoly Podgoretsky ©   (2004-06-11 22:37) [10]

SELECT tet, Requests FROM test57 ORDER BY Requests LIMIT 0, 30

Индекс по полю Requests


 
Vetek   (2004-06-11 22:38) [11]

добавил поле Requests типа Numeric, а чем его заполнять ?


 
Anatoly Podgoretsky ©   (2004-06-11 22:42) [12]

Количеством запросов, у тебя же откуда то брались эти tet вот вместо добавления строки увеличивая на единицу.


 
Vetek   (2004-06-12 06:43) [13]

Anatoly Podgoretsky ©   (11.06.04 22:42) [12]
спасибо ;)


 
SergP ©   (2004-06-12 12:23) [14]


> но что значит "order by 1"  ?


Это значит типа "order by tet"



Страницы: 1 вся ветка

Текущий архив: 2004.07.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.046 c
1-1088486764
ABL
2004-06-29 09:26
2004.07.11
Как из одного richedita передать часть текста в другой


8-1082697515
Gia Gvatua
2004-04-23 09:18
2004.07.11
Картография


14-1087797585
DimKa
2004-06-21 09:59
2004.07.11
Россия - Греция : 2-1


14-1088056604
syte_ser78
2004-06-24 09:56
2004.07.11
ГОСПОДА!!!!!!!!!!!!! Помогите плиз с поиском книги!!!!!!!!!!!!!


14-1087976260
Глеб
2004-06-23 11:37
2004.07.11
Алгоритм нахождения перестановок чисел