-1
如何計算在以下情況下每campaign
有多少個唯一(hit_type
= click
)? :SQL SUM disctinct values
CREATE TABLE statistics
(`id` int, `uid` int, `hit_type` varchar(10), `name` varchar(55), `date` date)
;
INSERT INTO statistics
(`id`, `uid`, `hit_type`, `name`, `date`)
VALUES
(1,'100','visit','campaign1','2015-03-18'),
(2,'100','visit','campaign1','2015-03-19'),
(3,'100','click','campaign1','2015-03-18'),
(4,'100','click','campaign1','2015-03-18'),
(5,'100','click','campaign1','2015-03-20'),
(6,'100','client','campaign1','2015-03-19'),
(7,'100','client','campaign1','2015-03-20'),
(8,'200','visit','campaign1','2015-03-19'),
(9,'200','visit','campaign1','2015-03-19'),
(10,'200','visit','campaign2','2015-03-20'),
(11,'200','click','campaign1','2015-03-18'),
(12,'200','click','campaign1','2015-03-19'),
(13,'200','client','campaign1','2015-03-19'),
(14,'200','client','campaign2','2015-03-20')
;
SELECT `name`,
SUM(IF(`hit_type` = 'click',1,0)) as click ,
SUM(IF(`hit_type` = 'visit',1,0)) as visit,
SUM(IF(`hit_type` = 'client',1,0)) as client
FROM `statistics`
WHERE `name` IN('campaign1','campaign2')
GROUP BY `name`
ORDER BY `name`
這似乎[工作就好了(http://sqlfiddle.com/#!9/ cd772/1)。什麼是你沒有預料到的回報? – 2015-03-19 12:14:41
「獨特」是什麼? – 2015-03-19 12:17:47
yes功能正常,但結果不是我真正需要的,我需要刪除重複的行,例如: (3,'100','click','campaign1','2015-03-18' ), (4,'100','點擊','campaign1','2015-03-18'), 應該計算一次而不是兩次。 – 2015-03-19 12:19:45