다음 표 (표 1)와 같은 표가 있습니다. 이 테이블에는 3 개월 동안 Opens and Clicks를 나타내는 38mm 레코드가 있습니다. 별도의 보고서에 따르면 1 월에는 11mm가 열렸으며 그 중 7mm는 독창적 인 것으로 나타났습니다. 나는이 테이블에 7mm의 독특한 오픈이 있는지 확인하고 싶습니다. 구독자가 전자 메일을 열면 OpenFlag에는 1이, 그렇지 않으면 0이 있습니다. 가입자 당 고유 한 MessageID가있는 메시지가 여러 개인 경우 1 (감산) 만 계산하고 싶습니다.3 열짜리 튜플 내에서 중복 계산하기
아무도 나에게 수를 계산할 수있는 비교적 단순한 쿼리 (백작, 합계, 별개 등 사용)의 방향을 알려줄 수 있습니까? 나는 @vars를 사용하여 동일한 subscriberID/month 집합 내에서 첫 번째 subscriberID/month를 구별 할 수 있지만 다른 messageID를 사용하고 카운트를 계속 유지할 수 있음을 알고 있지만이 경우에는 그 복잡성을 피하고 싶습니다.
전시회 1 :
당신은 단지 구독 데이터베이스에서 이메일을 열었다 있는지 테스트하는 경우create table TrackerSub
( Id int(11) NOT NULL AUTO_INCREMENT,
Time datetime NOT NULL,
SubscriberId int(11) DEFAULT NULL,
MessageId int(11) Default NULL,
OpenFlag int(1) default null,
ClickFlag int(1) default null,
Month int(2) default null,
PRIMARY KEY (`Id`)
);
Jim에게 감사드립니다. 이 쿼리는 각각의 고유 한 메시지 ID에 대해 1을 계산합니다. 구독자 ID로 1을 모두 합산하는 방법을 알고 있습니까? 외부 하위 쿼리 구문에 약간의 문제가 있습니다. –
각 MessageID는 단일 SubscriberID 와만 관련이 있습니까? 그렇다면 각 가입자가 몇 개의 고유 MessageID를 열어 놓았는지 테스트하고 있습니까? (추신에 대한 유감스럽게도, 제 대답에 대해 언급 한 것을 보지 못했습니다) –