테스트 목적으로 다음 코드를 고려하십시오 :은 SQLQuery 열은 하나의 대신에 가득하기 0의
CREATE TABLE Mydatabase(
TableID_bi int,
EVENTS VARCHAR(200),
email VARCHAR(200),
Timedetail DATETIME
);
INSERT INTO `Mydatabase` (`TableID_bi`,`EVENTS`, `email`, `Timedetail`) VALUES
(1, 'first','[email protected]','2013-06-15'),
(2, 'first','[email protected]', '2013-06-15'),
(3, 'second','[email protected]', '2013-06-15'),
(4, 'second','[email protected]', '2013-06-15'),
(5, 'third','[email protected]', '2013-06-15');
내가 코드와 무슨 짓을했는지에 대한 간략한 설명 : 내가보기를 만든
두 번째, 세 번째 등 연결의 각각에 대해 다음과 같습니다 : 다음과 같습니다 (결과를 행보다는 현명한 결과로 표시하기 위해 모든 쿼리를 클럽에 적용하지 않은 것은 이유입니다.)
create view firstview as
SELECT DATE(Timedetail) as Datefield1 ,
count(Timedetail) as firstoccurances,
Events
FROM Mydatabase
WHERE Events = "first" GROUP BY Datefield1 ;
마찬가지로 두 번째, 세 번째 및 기타 모든 이벤트가 발생합니다. 여기
내가보기에서 결과를 검색하는거야 방법입니다 언급 한 바와 같이
나는 같은 종류의 대형 데이터베이스에 일하고 있어요 : 데이터베이스에서 무슨 일이 일어나고 있는지에 대한
SELECT a.Datefield1
a.firstoccurances,
b.secondoccurances,
c.thirdoccurances
FROM firstview a,
secondview b,
thirdview c
WHERE a.Datefield1 = b.Datefield2
AND a.Datefield1 = c.Datefield3
간단한 설명 위. 예를 들어 다음과 같이 데이터베이스에서 날짜 범위를 선택했습니다. 2013-07-01에서 2013-08-01
지금까지 첫 번째 및 두 번째 이벤트에 관한 한 "첫 번째"및 "두 번째 이벤트 EVENTS 열 아래의 각 날짜에 대해 나열된 값입니다. I는 COUNT() 함수를 사용하여 시험하는 경우, 더 정확히 말하면, I는 다음과 같은 결과를 확인할 수
먼저 연결의 경우 :
TimeDetail | Number of first events
2013-07-01 4
2013-07-02 2
2013-07-03 6
and so on
2013-08-01 5
동일 번째 이벤트의 경우이다. 그러나 "세 번째"이벤트의 경우 동일하지 않습니다. 이벤트 열에 표시된 숫자가 인 이벤트 열 아래에 '세 번째'이벤트가 나열되어 있습니다 (예 : 2013-07-02 및 2013-07-03). 다음 출력 :
TimeDetail | Number of third events
2013-07-01 0
2013-07-02 1
2013-07-03 2
and so on
2013-08-01 0
그러나 위 출력이 표시되지 않습니다. 대신 2013-07-02 및 2013-07-03을 제외한 다른 모든 날짜 값은 '세 번째 숫자' 이벤트 열 아래에서 값 1로 채워집니다. 왜 그런지 알 겠어?
감사합니다. 여기서 SUM 대신 COUNT를 사용해야했습니다. 효과가 있습니다. :) – Tan
아니요, 'sum'은 위 예의 올바른 연산자입니다. 'count'로 바꾸면 잘못된 결과가 나옵니다. http://sqlfiddle.com/#!2/f0006/1/0 및 http://sqlfiddle.com/#!2/f0006/2/0를 참조하십시오. – Leigh
또한 게시 한 스키마가 잘 작동합니다 [example] (http://sqlfiddle.com/#!2/f0006/6/0). 그래서 당신이 게시 한 것과 다른 SQL을 사용했거나, 우리 환경에서 공유하고있는 다른 것이 있습니다 ;-) – Leigh