Select в select

Статус
В этой теме нельзя размещать новые ответы.

Denis5

Постоялец
Регистрация
2 Сен 2008
Сообщения
98
Реакции
23
Нужно получить время загрузки страниц и кол-во страниц, которые загружаются медленнее.
5сек - 200страниц
10сек - 100страниц
....
PHP:
SELECT loadtime, count( loadtime ), second.slower
FROM `table`,
(
SELECT count( loadtime ) as slower
FROM `table`
WHERE loadtime > {как сюда вставить loadtime из первого select?}
) as second
WHERE loadtime > 0
GROUP BY loadtime
ORDER BY `table`.`loadtime` ASC
Подскажите пожалуйста.
А можно ли получить уже в процентах результат одним запросом?
5сек - 10% от всех медленнее
10сек - 2% от всех медленнее
...
 
Хм, довольно странная конструкция запроса :)
Для первой задачи попробуй это, сортировка будет по времени загрузки (loadtime)
Код:
SELECT loadtime, 
(
 SELECT count( loadtime ) AS counter 
 FROM `table` second
 WHERE second.loadtime > first.loadtime
 GROUP BY second.loadtime
)
AS counter
FROM `table` first
WHERE first.loadtime > 0
GROUP BY first.loadtime ASC
А для % лучше сложить все counter, а потом вычислять %, ну или делать вложеный запрос, но это увеличит нагрузку на MySQL
 
Или вы мудрите или я чего не понял.

select a*5||'-'||(a+1)*5, b from (
select int(loadtime/5) a,count(*) b
from table
group by int(loadtime/5)
) order by 1

int надо заменить на функцию, которая отбрасывает дробную часть. Не помню как она в mysql называется.

Нужно получить время загрузки страниц и кол-во страниц, которые загружаются медленнее.
5сек - 200страниц
10сек - 100страниц
....
PHP:
SELECT loadtime, count( loadtime ), second.slower
FROM `table`,
(
SELECT count( loadtime ) as slower
FROM `table`
WHERE loadtime > {как сюда вставить loadtime из первого select?}
) as second
WHERE loadtime > 0
GROUP BY loadtime
ORDER BY `table`.`loadtime` ASC
Подскажите пожалуйста.
А можно ли получить уже в процентах результат одним запросом?
5сек - 10% от всех медленнее
10сек - 2% от всех медленнее
...
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху