[SQL] 어떻게 MySQL은 날짜의 평균을 만들 수 있습니까?
SQL어떻게 MySQL은 날짜의 평균을 만들 수 있습니까?
어떻게 MySQL은 날짜의 평균은 할 수 있습니까? 나는 시간 값, 시간 및 분에 더 관심이 있어요.
테이블이 경우 :
| date_one | datetime |
| date_two | datetime |
쿼리를 같이 수행 :
SELECT AVG(date_one-date_two) FROM some_table WHERE some-restriction-applies;
평균 (DATE1 - DATE2)은 작동하지만 나는 그것이 반환되는 데이터 단서가 없다.
해결법
-
==============================
1.이 비트 hackish 보이지만 날짜 ~ 1970 년과 2030 beteen (32 비트 아치)에 대한 작동합니다. 당신은 본질적으로 정수로 날짜 값을 변환을 평균 및 날짜 시간 값을 평균 다시 변환된다.
이 비트 hackish 보이지만 날짜 ~ 1970 년과 2030 beteen (32 비트 아치)에 대한 작동합니다. 당신은 본질적으로 정수로 날짜 값을 변환을 평균 및 날짜 시간 값을 평균 다시 변환된다.
SELECT from_unixtime( avg( unix_timestamp(date_one)-unix_timestamp(date_two) ) ) FROM some_table WHERE some-restriction-applies
거기 밖으로 더 나은 솔루션은 가능성이 있지만,이 핀치에 의해 당신을 얻을 것이다.
-
==============================
2.
select avg(datediff(date1,date2)) select avg(timediff(datetime,datetime))
-
==============================
3.
SELECT date_one + (date_two - date_one) / 2 AS average_date FROM thetable WHERE whatever
당신은 날짜 합계 수는 없지만, 당신이 그들을 빼고 당신이 절반와 첫 데이트에 다시 추가 할 수있는 시간 간격을 얻을 수 있습니다.
-
==============================
4.
SELECT TIMESTAMPADD(MINUTE, TIMESTAMPDIFF(MINUTE, '2011-02-12 10:00:00', '2011-02-12 12:00:00')/2, '2011-02-12 10:00:00')
결과는 '2011-02-12 11시 0분 0초'
-
==============================
5.생각은하고 설정 한 시간에 다시 그 분을 추가하는 것이 평균, 설정된 시간에서 분에 DATEDIFF을 할 수 outloud ...
생각은하고 설정 한 시간에 다시 그 분을 추가하는 것이 평균, 설정된 시간에서 분에 DATEDIFF을 할 수 outloud ...
-
==============================
6.
CREATE TABLE `some_table` ( `some_table_key` INT(11) NOT NULL AUTO_INCREMENT, `group_name` VARCHAR(128) NOT NULL, `start` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `finish` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`some_table_key`) ); SELECT group_name, COUNT(*) AS entries, SEC_TO_TIME( AVG( TIME_TO_SEC( TIMEDIFF(finish, start) ) ) ) AS average_time FROM some_table GROUP BY some_table.group_name ;
나중에 당신을 위해 올바른 그룹을 선택합니다 등 가입 및 가정 MySQL과 쿼리를 확장 할 경우, 당신은 항상 그룹 기능을 사용하면 원하는 그룹, 당신은 그룹 기능 성가신 놨에서 끝낼 수 지정해야합니다.
-
==============================
7.AVG는 행 수에 의해 분할 테이블의 모든 행의 합계를 의미 그룹화 기능이다. 각 행에 대해 개별적으로보고 된 두 개의 서로 다른 컬럼의 평균을 원하는 것처럼하지만 소리. 이 경우, 당신은 스스로를 계산한다 : (날짜 1 + DATE2) / 2. (MySQL은 몇 가지 여분의 구문이 제대로 그 열을 추가 할 수 있습니다.)
AVG는 행 수에 의해 분할 테이블의 모든 행의 합계를 의미 그룹화 기능이다. 각 행에 대해 개별적으로보고 된 두 개의 서로 다른 컬럼의 평균을 원하는 것처럼하지만 소리. 이 경우, 당신은 스스로를 계산한다 : (날짜 1 + DATE2) / 2. (MySQL은 몇 가지 여분의 구문이 제대로 그 열을 추가 할 수 있습니다.)
당신이 작성한 코드는 당신에게 날짜 1과 날짜 2 사이의 테이블의 평균 경과 시간을 줄 것이다.
from https://stackoverflow.com/questions/1021947/how-can-i-make-an-average-of-dates-in-mysql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 나는 바인드 매개 변수 경우는 mysql_real_escape_string를 사용해야합니까? (0) | 2020.06.14 |
---|---|
[SQL] 'AND'사이의 차이 '&&'SQL에서 (0) | 2020.06.14 |
[SQL] SQL 서버 오류 "값의 데이터 정렬은 데이터 정렬 충돌로 인해 해결되지 않은 때문에 암시 적 변환." (0) | 2020.06.14 |
[SQL] 어떻게 C #에서 NVARCHAR (최대) SqlParameter에를 만드는 방법? [복제] (0) | 2020.06.14 |
[SQL] 결과를 표시하지 않고 SQL 쿼리를 실행하는 방법 (0) | 2020.06.14 |