Допустим, у меня есть две существующие таблицы, "собаки" и "кошки":
dog_name | owner
---------+------
Sparky | Bob
Rover | Bob
Snoopy | Chuck
Odie | Jon
cat_name | owner
---------+------
Garfield | Jon
Muffy | Sam
Stupid | Bob
Как мне написать запрос с этим выводом?
owner | num_dogs | num_cats
------+----------+---------
Bob | 2 | 1
Chuck | 1 | 0
Sam | 0 | 1
Jon | 1 | 1
Ответ, который я получил, следующий запрос
select owner, sum(num_dogs), sum(num_cats) from
(select owner, 1 as num_dogs, 0 as num_cats from dogs
union
select owner, 0 as num_dogs, 1 as num_cats from cats)
group by owner
но проблема в том, что sql не поддерживает "select * from (select ...)"
тип запроса
Вместо этого после "from" должно быть имя таблицы.
К сожалению, я не могу позволить себе иметь временный стол или стол
созданный с предложением "в". Мне нужен обходной путь для
предлагаемое решение, в котором вложенное предложение select формируется таким образом.
Каково ваше мнение?
Приветствия