[SQL] 15 분 간격으로 그룹 MySQL의 쿼리
SQL15 분 간격으로 그룹 MySQL의 쿼리
나는 데이터마다 n 초를 수집하는 모니터링 시스템을 가지고 (n은 약 10 만 다름)했습니다. 나는 15 분 간격으로 수집 된 데이터를 집계하고 싶습니다. 작업에 그룹화 수 있도록 15 개 덩어리에 타임 스탬프 값을 통합 할 수있는 방법이 있습니까?
해결법
-
==============================
1.
SELECT FLOOR(UNIX_TIMESTAMP(timestamp)/(15 * 60)) AS timekey FROM table GROUP BY timekey;
-
==============================
2.당신은 초 간격으로 15 * 60을 변경할 수 있습니다, 간격 15 분 레코드 그룹화이 당신이 필요 시도
당신은 초 간격으로 15 * 60을 변경할 수 있습니다, 간격 15 분 레코드 그룹화이 당신이 필요 시도
SELECT sec_to_time(time_to_sec(datefield)- time_to_sec(datefield)%(15*60)) as intervals from tablename group by intervals
-
==============================
3.아래의 방법 1)의 적응 :
아래의 방법 1)의 적응 :
select Round(date_format(date, "%i") / (15*60)) AS interval from table group by interval
아래의 방법 3)의 적응 :
SELECT Round(Convert(substring(date_column, 14, 2), UNSIGNED) / (15*60)) AS interval /* e.g. 2009-01-04 12:20:00 */ FROM table GROUP BY interval;
내가 여기 발견 한 몇 가지 방법 :
1)
select date_format(date, "%W") AS `Day of the week`, sum(cost) from daily_cost group by `Day of the week` order by date_format(date, "%w")
2)
select count(*) as 'count', date_format(min(added_on), '%Y-%M-%d') as 'week commencing', date_format(added_on, '%Y%u') as 'week' from system where added_on >= '2007-05-16' group by week order by 3 desc;
3)
SELECT substring(postdate, 1,10) AS dd, COUNT(id) FROM MyTable GROUP BY dd;
(또한 여기 : http://www.bradino.com/mysql/dayparting-on-datetime-field-using-substring/)
편집 : 모든 솔루션은 많은 수의 레코드가있는 테이블에 심하게 수행합니다.
-
==============================
4.나는 unutbu에 의해 위에 주어진 답을 시작했지만 내가 필요하고 여기에 조금 추가 한 것을 얻을하지 않았다.
나는 unutbu에 의해 위에 주어진 답을 시작했지만 내가 필요하고 여기에 조금 추가 한 것을 얻을하지 않았다.
GroupTime 만든, FROM_UNIXTIME ((UNIX_TIMESTAMP이 (작성) / (15 * 60)) * (15 * 60) FLOOR)을 선택, Cnt 필드로서 COUNT (*) 문제 난 FROM GROUP BY GroupTime
15 분의 범위에서 900 초씩이 코드 분할 다음 층은 (900)에 의해 백업 값 승산은 본질적으로 가까운로 15 분 증분으로 내림.
-
==============================
5.쿼리 그룹 행을 다음과 것은 15 분 간격으로 타임 스탬프를 생성합니다.
쿼리 그룹 행을 다음과 것은 15 분 간격으로 타임 스탬프를 생성합니다.
Select concat( date(created_dt) , ' ', sec_to_time(time_to_sec(created_dt)- time_to_sec(created_dt)%(15*60) + (15*60)))as created_dt_new from table_name group by created_dt_new
예 : 타임 스탬프 2016년 11월 9일 13시 16분 29초 2016년 11월 9일 13시 16분 49초 2016년 11월 9일 13시 17분 6초 2016년 11월 9일 13시 17분 26초 2016년 11월 9일 13시 18분 24초 2016년 11월 9일 13시 19분 59초 2016년 11월 9일 13시 21분 17초
2016년 11월 9일 13시 30분 0초로 분류됩니다
-
==============================
6.유닉스 타임 스탬프 : 바닥 그 다음 중 하나를 사용하여 가장 가까운 15분에 :
유닉스 타임 스탬프 : 바닥 그 다음 중 하나를 사용하여 가장 가까운 15분에 :
timestamp div (15 * 60) * (15 * 60) -- div is integer division operator timestamp - timestamp % (15 * 60)
날짜 시간 : 데이터 유형을 가정하면, 바닥 분수 초이없는 그들 근처로 15 분 사용 :
date - INTERVAL EXTRACT(SECOND FROM date) SECOND - INTERVAL EXTRACT(MINUTE FROM date) % 15 MINUTE
DBFiddle
-
==============================
7.이것은 나를 위해 일한
이것은 나를 위해 일한
mysql> **SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(NOW())- UNIX_TIMESTAMP(NOW())%(15*60));** +---------------------------------------------------------------------+ | FROM_UNIXTIME(UNIX_TIMESTAMP(NOW())- UNIX_TIMESTAMP(NOW())%(15*60)) | +---------------------------------------------------------------------+ | 2012-02-09 11:15:00 | +---------------------------------------------------------------------+ 1 row in set (0.00 sec)
-
==============================
8.나를 위해이 작품
나를 위해이 작품
SELECT CONCAT ( YEAR(transactionDate) ,'-' ,MONTH(transactionDate) ,'-' ,DAYOFMONTH(transactionDate) ,' ' ,HOUR(transactionDate) ,':' ,((floor((MINUTE(transactionDate) / 15)) + 1) * 15) - 1 ,':59' ) AS tmp1 ,count(*) FROM tablename GROUP BY tmp1 limit 20;
-
==============================
9.당신을 간격에 어떤 변경 "(15)"합니다.
당신을 간격에 어떤 변경 "(15)"합니다.
select count(*), CONCAT(HOUR(col_date),":",(MINUTE(create_date) div 15)*15) as date from tablename GROUP BY date ORDER BY col_date ASC;
from https://stackoverflow.com/questions/2793994/group-mysql-query-by-15-min-intervals by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] DATETIME을 비교하고 DATE 시간 부분을 무시하고 (0) | 2020.04.14 |
---|---|
[SQL] PostgreSQL을 신속하게 비슷한 문자열 찾기 (0) | 2020.04.14 |
[SQL] PostgreSQL을 위해하지 않음있는 경우 DATABASE를 생성 시뮬레이션? (0) | 2020.04.13 |
[SQL] 목록에서 SqlBulkCopy의 <> (0) | 2020.04.13 |
[SQL] 안드로이드 여러 데이터베이스가 열립니다 (0) | 2020.04.13 |