add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE table1 (
id int,
period DATE,
value INT,
name varchar(255)
);

INSERT INTO table1 VALUES
(1,'2020-06-01',3,'anna'),
(2,'2020-06-01',2,'anna'),
(3,'2020-06-01',3,'anna'),
(4,'2020-06-01',1,'juned'),
(5,'2020-06-01',3,'juned'),
(6,'2020-06-01',2,'juned'),
(7,'2020-07-01',3,'anna'),
(8,'2020-07-01',2,'anna'),
(9,'2020-07-01',2,'anna'),
(10,'2020-07-01',3,'juned'),
(11,'2020-07-01',3,'juned'),
(12,'2020-07-01',3,'juned');
Records: 12  Duplicates: 0  Warnings: 0
SELECT period, name, SUM(CASE WHEN value = 3 THEN 1 ELSE 0 END) AS value FROM t1
GROUP BY period, name;
Table 'fiddle.t1' doesn't exist
SET @sql = NULL;
SELECT GROUP_CONCAT(DISTINCT 'SUM(value = 3 AND period = ''', period, ''') AS `', period, '`')
INTO @sql
FROM table1;

SET @sql = CONCAT('SELECT name, ', @sql, ' FROM table1 GROUP BY name');
select @sql;

PREPARE stmt FROM @sql;
EXECUTE stmt;
@sql
SELECT name, SUM(value = 3 AND period = '2020-06-01') AS `2020-06-01`,SUM(value = 3 AND period = '2020-07-01') AS `2020-07-01` FROM table1 GROUP BY name
Statement prepared
name 2020-06-01 2020-07-01
anna 2 1
juned 1 3