powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как ограничить вывод запроса по условию?
2 сообщений из 2, страница 1 из 1
Как ограничить вывод запроса по условию?
    #39240665
Anatolich_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица, breaker с полями timein , name . В нее записываются события, время возникновения и название события. Необходимо посчитать количество событий в минуту с тем или иным названием.
Вот мой запрос
Код: sql
1.
2.
3.
4.
5.
6.
SELECT date_format(timein,'%H:%i') as time_, name, count(*) as colvo  FROM mydb.Breaker
where
timein >= now()-interval 60 minute
group by name
order by time_, colvo desc
;


Получаю таблицу

time_namecolvo12:17Bp12012:17TX21812:17buton_11012:17WF45912:17TX3412:17buton_105412:17Bp2112:17TX3112:17buton_101112:18Bp11212:18TX2812:18buton_1412:18WF45412:18buton_105412:18Bp2112:18TX3112:18buton_101112:19Bp15012:19TX23812:19buton_1112:19WF45112:19TX3112:19buton_105112:19Bp2112:19TX3112:19buton_1011

Мне необходимо ограничить вывод в каждой минуте, либо по количеству, либо по максимальному значению.

1. colvo>4
time_namecolvo12:17Bp12012:17TX21812:17buton_11012:17WF45912:18Bp11212:18TX2812:19Bp15012:19TX238
2. строк в минуте = 4
time_namecolvo12:17Bp12012:17TX21812:17buton_11012:17WF45912:18Bp11212:18TX2812:18buton_1412:18WF45412:19Bp15012:19TX23812:19buton_1112:19WF451
Подскажите как это сделать средствами SQL
...
Рейтинг: 0 / 0
Как ограничить вывод запроса по условию?
    #39240782
Anatolich_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сам спросил, сам ответил.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SET @i=0;
SET @f:='';
SET @ff:='';
select num, time_, name, colvo, (if(FF='N','TOP','')) as TOP from (
Select (if (@ff=time_,@f:='Y',@f:='N')) as FF,(if(@f=time_,@f,@ff:=time_)) as F, if(@f='N',@i:=1,@i:=@i+1) as num, time_,name, colvo from
(SELECT   date_format(timein,'%H:%i') as time_,name, count(*) as colvo
FROM fo_visa.online_log 
where
# timein >= now()-interval 20 minute
	timein > '2016-05-21 19:50:00'
and timein < '2016-05-21 20:10:00' 
group by name
order by time_, colvo desc
) t ) tt
 where tt.num<5 
 and colvo>1
;



Если есть более изящное решение, очень буду рад его посмотреть.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как ограничить вывод запроса по условию?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]