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