사이입니다.이 작업을 수행하는 방법에 관해서는 정말 단서가 없습니다. 내가 게시물 사이의 평균 시간을 얻을 어떻게평균 시간은 SQL
MESSAGES
- id
- date_posted
- content
:
내 테이블과 같이 보이는 말? (date_posted)
사이입니다.이 작업을 수행하는 방법에 관해서는 정말 단서가 없습니다. 내가 게시물 사이의 평균 시간을 얻을 어떻게평균 시간은 SQL
MESSAGES
- id
- date_posted
- content
:
내 테이블과 같이 보이는 말? (date_posted)
SELECT AVG(period)
FROM (
SELECT TIME_TO_SEC(TIMEDIFF(@date_posted, date_posted)) AS period,
@date_posted := date_posted
FROM (
SELECT @date_posted := NULL
) vars,
messages
ORDER BY
date_posted
) q
이 시도 : 죄송합니다
SELECT AVG(DATEDIFF(s, M2.Date_Posted, M1.Date_Posted)) as AverageSeconds
FROM Messages M1 INNER JOIN Messages M2 ON M1.Id = M2.Id+1
이되지 MySQL은 MS-SQL 솔루션입니다 - 사과는 그냥 당신이 후에 무엇인지 깨달았다. 이것은 다른 누군가에게 유용 할 수 있습니다.
아래의 주석에 대한 응답으로 - SQL Server 2005 또는 2008 - Row_Number를 사용하여 순차적 인 고유 키를 생성하므로 순차적 또는 사실적인 정수 기본 키에 대한 가정이 없으므로 다음 방법이 더 나은 솔루션입니다.
SELECT AVG(DATEDIFF(s, M2.Date_Posted, M1.Date_Posted)) as AverageSeconds
FROM (SELECT ROW_NUMBER() OVER(ORDER BY Date_Posted ASC) as Id, Date_Posted FROM
Messages) M1
INNER JOIN (SELECT ROW_NUMBER() OVER(ORDER BY Date_Posted ASC) as Id, Date_Posted
FROM Messages) M2 ON M1.Id = M2.Id+1
위의 코드에서는 Id가 엄격하게 순차적이라고 가정합니다. 게다가, 누가 ID가 INTs이고 GUID 나 VARCHAR가 아니라고 말했습니까? –
안녕하세요! 그러나 그것은 "16775640.3"과 같은 가치를 부여합니다. 어떻게 요일이나 시간으로 변환합니까? – Obay
@ Obay : 죄송합니다. 약간의 결함이있어서 쿼리를 업데이트했습니다. 이것은 수초 내에 있습니다. – Quassnoi
와우, 고마워! – Obay