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

Вниз

sql запрос   Найти похожие ветки 

 
brother   (2008-04-11 05:20) [0]

Всем привет. Помогите написать sql запрос для выборки топ10 сайтов по посещаемости за месяц из таблицы со структурой:
имя таблицы: www
структура:  ID, Time, Duration, SourceIP, CodeID, Status, Filesize, MethodID, Proto, Site, Path, LoginID, PeerStatusID, PeerHost, Type, GroupID, LocalTraffic
где time - полная дата со временем посещенного узла
    site - адресс сайта без дополнительных параметров (типа www.mail.ru)
Чешу репу и не знаю с какой стороны к данной проблемме подойти...


 
brother   (2008-04-11 05:51) [1]

зы синтакси запрса не firebird


 
Sergey13 ©   (2008-04-11 08:45) [2]

> [0] brother   (11.04.08 05:20)
> Чешу репу и не знаю с какой стороны к данной проблемме подойти...

> [1] brother   (11.04.08 05:51)
> синтакси запрса не firebird

Чешу свою репу для прочтения вопроса и выбора СУБД для ответа. 8-)


 
Павел Калугин ©   (2008-04-11 08:54) [3]

> [2] Sergey13 ©   (11.04.08 08:45)

а что чесать.. Стандарт он и в Африке стандарт
как то приводился примет типа "пронумеровать строки внутри запроса"
по томуже принципу можно и эта, от обрать первые N записей.


 
Sergey13 ©   (2008-04-11 09:08) [4]

> [3] Павел Калугин ©   (11.04.08 08:54)
> по томуже принципу можно и эта

Ну, если пользоваться только этим принципом, то наверное. 8-)
Если список принципов несколько расщирить, но например для НЕжелательного файрберда можно указать FIRST, для мелкомягкого сервера TOP, для Оракла можно использовать ROWNUM.


 
Simpson ©   (2008-04-11 10:02) [5]

Долго только выполняться будет
select count(id),siteid from site where SourceIP in (select distinct(SourceIP) from site) group by siteid;

Или если позволяет СУБД

select si.sip,(select count(*) from site s where s.SourceIP = si.sip)
from
(select distinct(SourceIP) as sip from site) as si;

Где то так помойму будет работать


 
Simpson ©   (2008-04-11 10:04) [6]

limit в конце надо указать для вашей бд


 
Simpson ©   (2008-04-11 10:09) [7]

select res.sip,res.scount
(select si.sip as sip,(select count(*) from site s where s.SourceIP = si.sip) as scount
from
(select distinct(SourceIP) as sip from site) as si) as res offset 0 limit 10;


 
мимоносец   (2008-04-11 10:41) [8]

Примерно так

select top 10
site,
count(1)
from
www
where
time between PeriodBegin and PeriodEnd
group by
site
order by
count(1) desc

здесь PeriodBegin и PeriodEnd - начало и конец интересующего периода соответственно.


 
brother   (2008-04-11 11:06) [9]

всем спасибо буду применять и разбираться дальше


 
Павел Калугин ©   (2008-04-11 15:06) [10]


> Sergey13 ©   (11.04.08 09:08) [4]


ну а коль СУБД не указана то того. по стандалру. его все должны поддерживать.


> Simpson ©   (11.04.08 10:04) [6]

limit? а в MS оно где?

> мимоносец   (11.04.08 10:41) [8]
> Примерно так
>
> select top 10

и в Sybase получите ошибку о неизвестном полн top:)


 
Sergey13 ©   (2008-04-11 15:28) [11]

> [10] Павел Калугин ©   (11.04.08 15:06)
> его все должны поддерживать.

Забрать весь запрос на клиента и показать только нужное количество. 8-)


 
wicked ©   (2008-04-11 16:15) [12]


> и в Sybase получите ошибку о неизвестном полн top:)

сколько не работал с ASA 8 и ASA 9 - ошибок на top не было


 
Павел Калугин ©   (2008-04-11 16:20) [13]


> wicked ©   (11.04.08 16:15) [12]

странно. я вот только с ASE работал. нети там слова top. по другому приходится писать. неужели такие различия?


 
wicked ©   (2008-04-11 20:45) [14]


> неужели такие различия?

да, вполне
причем, у меня сложилось впечатление, что sybase искусственно пытается сделать всё, чтобы ASA и ASE не конкурировали

ASE - их разработка, выкинуть жалко, особенно глядя, что с ней микрософт сделал :)
ASA - очень продвинутая купленная разработка (watcom sql), тоже жалко убить

вот и мучаются, разграничивают как могут :)


 
Simpson ©   (2008-04-11 22:37) [15]

Павел Калугин ©   (11.04.08 15:06) [10]
А разве нету? А какие нибудь синонимы есть?

зы
PostgreSql, MySQL мои наречия
зыы
Я вообще то ждал ответ а автора что не работает))
Чтобы сказать что код нигде не тестировался и писался сразу в форум


 
мимоносец   (2008-04-11 23:49) [16]

Павел Калугин ©   (11.04.08 15:06) [10]
>и в Sybase получите ошибку о неизвестном полн top:)

А что, кто-то просил sybase? Нет. Просили не firebird. Получили не firebird. К тому же написано было - примерно. То есть, чтобы смысл был понятен. Как это реализовать на разных диалектах - это уже  другой вопрос. Так что претензии мимо кассы. :P



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

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

Наверх




Память: 0.5 MB
Время: 0.011 c
2-1208968041
Alex1987
2008-04-23 20:27
2008.05.25
Копирование в буфер Windows


2-1208970958
dik
2008-04-23 21:15
2008.05.25
Редактирование рисунков кнопок


15-1207718318
@!!ex
2008-04-09 09:18
2008.05.25
Утилита для синхронизации.


2-1208939288
K
2008-04-23 12:28
2008.05.25
Считывание BlockRead`ом в вариантный массив


2-1209008142
Andr
2008-04-24 07:35
2008.05.25
Создание формы в мной созданном обьекте.