У меня есть эта таблица (имя таблицы CH);
╔══════╦══════╦══════════╦══════════╗
║ ID_A ║ ID_B ║Category_A║Category_B║
╠══════╬══════╬══════════╬══════════╣
║ 1 ║ 1 ║ 1 ║ 5 ║
║ 1 ║ 2 ║ 1 ║ 5 ║
║ 1 ║ 3 ║ 1 ║ 5 ║
║ 1 ║ 1 ║ 2 ║ 5 ║
║ 1 ║ 3 ║ 2 ║ 5 ║
║ 1 ║ 1 ║ 3 ║ 5 ║
║ 1 ║ 2 ║ 3 ║ 5 ║
║ 2 ║ 1 ║ 1 ║ 4 ║
║ 2 ║ 2 ║ 1 ║ 3 ║
║ 2 ║ 2 ║ 2 ║ 2 ║
║ 2 ║ 2 ║ 3 ║ 1 ║
╚══════╩══════╩══════════╩══════════╝
ID_A = 1 & ID_B = 1 появляется все в Category_A (= 1,2,3), а также ID_A = 2 & ID_B =2 появляется все в Category_A (= 1,2,3)
Есть ли в любом случае, чтобы выбрать эти типы строк?Я пытался выбрать разные или подсчитать разные с условием, но не смог.
select * from ch group by ID_A, ID_B having count(ditinct Category_A)=4;
Я ожидаю, что таблица, как это;
╔══════╦══════╦══════════╦══════════╗
║ ID_A ║ ID_B ║Category_A║Category_B║
╠══════╬══════╬══════════╬══════════╣
║ 1 ║ 1 ║ 1 ║ 5 ║
║ 1 ║ 1 ║ 2 ║ 5 ║
║ 1 ║ 1 ║ 3 ║ 5 ║
║ 2 ║ 2 ║ 1 ║ 3 ║
║ 2 ║ 2 ║ 2 ║ 2 ║
║ 2 ║ 2 ║ 3 ║ 1 ║
╚══════╩══════╩══════════╩══════════╝