Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.035 c
14-1087980679
AlexG
2004-06-23 12:51
2004.07.11
Алгоритмы сжатия


14-1087908167
syte_ser78
2004-06-22 16:42
2004.07.11
Переменные в html


1-1088451099
romeo
2004-06-28 23:31
2004.07.11
Есть DC, как для него создать Pen, рисующий XOR ом?


11-1075550627
ZiloNit
2004-01-31 15:03
2004.07.11
У меня проблемы с XPStyle.


14-1087464760
фантазер
2004-06-17 13:32
2004.07.11
Заработок в интернете





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский