2012-02-13 2 views
1

UNIX 시간 소인으로 당일에 참여한 현재 이벤트의 수를 얻는 방법 (예 : 2012 년 2 월 17 일 2 이벤트 및 2 월 19 일 1 이벤트)각 당일의 총 이벤트 수를 얻으십시오.

Array 
(
    [0] => stdClass Object 
     (
      [event_id] => 4 
      [total_events] => 2 
     ) 

    [1] => stdClass Object 
     (
      [event_id] => 18 
      [total_events] => 2 
     ) 

    [2] => stdClass Object 
     (
      [event_id] => 19 
      [total_events] => 1 
     ) 
) 

처음 두 항목이 서로 (2월 17일)의 같은 날에 예정을하고 마지막 항목은 동일한 일정을 다른 이벤트와 2월의 19에 : 2012 그것은 다음과 같이 행을 반환해야 일.

나는이 방법을 시도했지만이 반환
Array 
(
    [0] => stdClass Object 
     (
      [event_id] => 1 
      [total_events] => 1 
     ) 

    [1] => stdClass Object 
     (
      [event_id] => 2 
      [total_events] => 1 
     ) 

    [2] => stdClass Object 
     (
      [event_id] => 3 
      [total_events] => 1 
     ) 

) 

입니다 좋은 결과없이 지금까지 수행 한 다음 SQL :

SELECT events.event_id, 
     SUM(IF(DATE_FORMAT(FROM_UNIXTIME(events.event_starts), '%y %m %d') = DATE_FORMAT(FROM_UNIXTIME(events.event_ends), '%y %m %d'), 1, 0)) AS total_events 

FROM 
(
    scheduled_events events 
) 
WHERE (events.event_starts >= 1328486400 AND events.event_ends <= 1329695940) 
GROUP BY events.event_id 

두 UNIX 타임 스탬프는 2 월 13 일 월요일 오전 12 시부 터 2 월 19 일 오후 11시 59 분까지 다음 주 구성표와 같습니다.

다음 이벤트의 해당 날짜에 이벤트가있을 때 각 요일의 이벤트 수를 반환하는 이벤트 수를 검색하는 방법은 무엇입니까?

답변

0

시작해야합니다. 두 개의 타임 스탬프 내의 각 event_id와 같은 날에 시작하는 다른 모든 event_ids의 수를 반환해야합니다.

SELECT e1.event_id, 
     COUNT(DISTINCT e2.event_id) 
FROM scheduled_events AS e1 
    INNER JOIN scheduled_events AS e2 
     ON e1.event_id!=e2.event_id 
      AND DATE(FROM_UNIXTIME(e1.event_starts))=DATE(FROM_UNIXTIME(e2.event_starts)) 
WHERE (e1.event_starts >= 1328486400 AND e1.event_ends <= 1329695940) 
GROUP BY e1.event_id 
관련 문제