DECLARE @Sample TABLE
(
theDate DATE NOT NULL,
ID INT NOT NULL,
Intent VARCHAR(20) NOT NULL
);
INSERT @Sample
VALUES ('20180901', 1, 'fetch it'),
('20180901', 1, 'Ask it'),
('20180901', 1, 'default'),
('20180901', 2, 'remand'),
('20180901', 2, 'choose it'),
('20180902', 1, 'fetch it'),
('20180902', 1, 'choose'),
('20180902', 1, 'default'),
('20180903', 4, 'Ask it'),
('20180903', 4, 'fetch it'),
('20180904', 5, 'hello'),
('20180904', 1, 'call'),
('20180904', 1, 'default'),
('20180905', 1, 'remand'),
('20180905', 1, 'default'),
('20180905', 2, 'fetch it'),
('20180905', 2, 'default');
-- swePeso
WITH cteData(theDate, Task1, Task2, Task3)
AS (
SELECT theDate,
SUM(CASE WHEN Intent = 'default' THEN 1 ELSE 0 END) AS Task1,
MIN(CASE WHEN Intent = 'default' THEN NULL ELSE Intent END) AS Task2,
MAX(CASE WHEN Intent = 'default' THEN ID ELSE NULL END) AS Task3
FROM @Sample
GROUP BY theDate,
ID
)
SELECT theDate,
SUM(Task1) AS Task1,
MAX(CASE WHEN Task1 = 1 THEN Task2 ELSE '' END) AS Task2,
COUNT(DISTINCT Task3) AS Task3
FROM cteData
GROUP BY theDate
ORDER BY theDate;