sourcetip

유닉스 타임스탬프를 사용하여 MySQL에서 1분 주기로 그룹화하는 방법이 있습니까?

fileupload 2023. 6. 7. 23:05
반응형

유닉스 타임스탬프를 사용하여 MySQL에서 1분 주기로 그룹화하는 방법이 있습니까?

저는 MariaDB 데이터베이스에 게임에 대한 데이터를 보관하고 있으며 Grafana를 사용하여 매 분마다 몇 개의 행이 삽입되었는지 그래프로 표시하고 싶었습니다.나는 Node.js 스크립트를 사용하여 게임의 Public API에서 매 분마다 데이터를 가져와 내 DB에 삽입하고 있지만, MySQL이 Grafana와 작동하는 무언가를 출력하도록 하는 방법을 찾을 수 없습니다.제가 필요한 것은 새 삽입 횟수와 1분 창 시작 시간에 대한 열이 있는 표를 출력하는 것입니다.내 DB는 다음과 같습니다.

 --------------------------------------------------------------------
| auction_id | seller | buyer | timestamp | price | bin | item_bytes |
 --------------------------------------------------------------------

API에서 제공하는 현재 데이터에 대한 새 삽입 수를 반환하기 위한 작업 쿼리가 있지만, 지난 몇 분 동안의 기록 데이터를 가져오는 방법을 알 수 없습니다.제가 찾고 있는 출력은 다음과 같습니다.

 -----------------------------
| new inserts |   timestamp   |
 -----------------------------
|     234     | 1625373706053 |
 -----------------------------
|     684     | 1625373666053 |
 -----------------------------
|     720     | 1625373626053 |
 -----------------------------
|     403     | 1625373586053 |
 -----------------------------

타임스탬프가 아래로 내려가는 방법에 주목합니다.60,000각 행, 즉 60초 또는 1분에 해당합니다.GROUP BY와 StackOverflow 및 기타 사이트에서 찾을 수 있는 거의 모든 솔루션을 사용해 보았지만 여전히 작동하지 않습니다.

제가 충분히 명확하지 않았다면 주저하지 말고 논평해 주십시오.

사용할 수 있습니다.UNIX_TIMESTAMP밀리초 단위 값을 신뢰할 수 있는 날짜 시간으로 변환합니다.그런 다음 분 단위로 집계하여 카운트를 가져옵니다.

SELECT
    COUNT(*) AS `new inserts`,
    FROM_UNIXTIME(timestamp / 1000, '%Y-%m-%d %H:%i') AS ts_minute
FROM yourTable
GROUP BY ts_minute
ORDER BY ts_minute;

언급URL : https://stackoverflow.com/questions/68241786/is-there-a-way-to-group-by-one-minute-periods-in-mysql-using-unix-timestamps

반응형