2012-06-22 3 views
0

시간과 로그인이라는 두 개의 열이있는 테이블이 있는데, 하루 동안 사용자가 전화를 보냈을 때 표시됩니다.MySQL : 하루에 레코드 당 그룹화 된 결과

사용자 당 기준으로 세션 길이가 첫 번째 통화와 마지막 통화 사이의 특정 시간에 계산 된 시간으로 계산되는 가장 길고 가장 작은 평균 세션 길이를 찾아야합니다.

테이블 : 동일한 출력 위에서 언급 한 바와 같이

MaxSession Login 
59   A 

이 MinSession 및 AverageSession 필요합니다 :

Time    Login 
2012-05-29 20:01:26 A 
2012-05-29 20:01:40 A 
2012-05-29 20:02:27 A 
2012-05-29 20:58:46 A 
2012-05-29 20:59:50 A 
2012-05-29 21:00:12 A 
2012-05-29 21:00:36 A 
2012-05-30 21:28:28 A 
2012-05-30 21:29:08 A 
2012-05-30 21:29:13 A 
2012-05-30 21:29:25 A 
2012-04-06 10:25:24 A 
2012-04-06 10:25:53 A 
2012-04-06 10:26:35 A 
2012-04-27 12:05:45 A 
2012-04-27 12:06:06 A 

원하는 출력은 다음과 같을 것이다.

나는 몇 시간 동안 완전히 붙어있어 실제로 이것을 수행하는 방법을 모른다.

내가 달성 한 것은 로그인 당 고유 한 활성 일을 얻는 것입니다. 난 그냥 될 것이라고하지만, 다음 단계를 달성하는 방법을 알아낼 수 없습니다 :

  • 하루에 로그인 당 첫 번째 항목을 얻을
  • 차이를 계산 당 로그인 당 마지막 항목을 얻을 마지막 항목 및 SessionLength로 로그인 당 하루의 첫 번째 항목 사이의 분
  • 는 최대, 최소, 및 로그인 당 평균 SessionLenght 선택

I 하시다 어떤 유형의 도움에 대해서도 매우 감사드립니다!

+0

가 나는 하루에 로그인 당 첫 번째 항목을 가져 오는 방법을 냈어요 OK : 는' 시간 ActiveDay로, DATE (TIME), 로그인, ActiveDay 시간 = 분 (시간)함으로써 로그인 그룹을 선택합니다; ' 그러나 맥스와 함께 작동하지 않습니다 ... – Nospez

답변

2

일에 의해 그룹화이

Select Login,Date(Time) As LoginDay,Max(Time) As LastLogin,Min(Time) As FirstLogin,Count(*) As Logins, 

From LoginsTable 
Group By Login,Date(Time) 
Order By LoginDay,Login 

시간 '

최대, 최소 및 평균 세션

Select Login,Max(SessionMinutes) As MaxSessoin,Min(SessionMinutes) As MinSession, 
    Avg(SessionMinutes) From 
    (
     Select Login, 
     LoginDay,LastLogin,FirstLogin,TotalLogins,Hour(DateDiff(LasTLogin-FirsTLogin))*60 + Minute(DateDiff(LasTLogin-FirsTLogin)) As SessionMinutes 
     From 
     (
      Select Login,Date(Time) As LoginDay,Max(Time) As LastLogin,Min(Time) As FirstLogin,Count(*) As Logins, 
      From LoginsTable 
      Group By Login,Date(Time) 
     ) As Temp 
    ) As Temp1 

'같은 열에 '에 열을 동봉 해주십시오 시도 현재 분을 계산하는 동안 초를 무시합니다.

+0

+1이 하나에 내게 너무 빨리되는 것에 대한) –

+0

@OlivierCoilland 감사합니다 –

+0

고마워요! @Sudhakar 그러나 로그인 단위가 아닌가요? 나는 테이블에 많은 다른 로그인이 포함되어 있다는 것을 분명히해야했습니다. – Nospez