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 (FieldA varchar(1), FieldB varchar(10))
insert into Table1 values
('a', 'cat'),
('a', 'dog'),
('a', 'rabbit'),
('a', 'chicken'),
('b', 'cat'),
('b', 'dog'),
('c', 'chicken'),
('d', 'cat'),
('d', 'ferret')

create table Table2 AS
SELECT FieldB, COUNT(FieldB) AS FCount
FROM Table1
GROUP BY FieldB
SELECT * FROM Table2
FieldB FCount
cat 3
chicken 2
dog 2
ferret 1
rabbit 1
SELECT t1.FieldB
FROM (SELECT FieldB, COUNT(FieldB) AS FCount
FROM Table1
WHERE FieldA IN ('a', 'b', 'd')
GROUP BY FieldB) t1
INNER JOIN Table2 t2 ON t2.FieldB = t1.FieldB AND t2.FCount = t1.FCount
FieldB
cat
dog
ferret
rabbit
SELECT t1.FieldB
FROM (SELECT FieldB, COUNT(FieldB) AS FCount
FROM Table1
WHERE FieldA IN ('a', 'c')
GROUP BY FieldB) t1
INNER JOIN Table2 t2 ON t2.FieldB = t1.FieldB AND t2.FCount = t1.FCount
FieldB
chicken
rabbit
SELECT t1.FieldB
FROM (SELECT FieldB, COUNT(FieldB) AS FCount
FROM Table1
WHERE FieldA IN ('b')
GROUP BY FieldB) t1
INNER JOIN Table2 t2 ON t2.FieldB = t1.FieldB AND t2.FCount = t1.FCount