Oracle/SQL - 将来自"不相关"的不相关表的计数组合在一起

dsc*_*scl 2 sql oracle union count

让我们假设我有两个表GOODBAD存储小部件生成的记录.我的桌子看起来像这样

Widget      Good
----------------
Widget A    Y
Widget A    Y
Widget B    Y

Widget      Bad
----------------
Widget A    Y
Widget B    Y
Run Code Online (Sandbox Code Playgroud)

我有这两个基本查询

select count(*) as good from table_good where widget = 'Widget A' and Good = 'Y'
select count(*) as bad from table_bad where widget = 'Widget A' and Bad = 'Y'
Run Code Online (Sandbox Code Playgroud)

这将导致两个这样的表

good
----
2

bad
---
1
Run Code Online (Sandbox Code Playgroud)

我想将这些组合成一个单独的查询,我将返回一个表格,其中包含一个看起来像这样的记录

good    bad
-----------
2       1
Run Code Online (Sandbox Code Playgroud)

有人能指出我如何做到这一点.我认为做一个联合并在其他表中设置假列会选择这样做,但我得到了正确的表模式,但有两个单独的记录.

谢谢!

Cha*_*ndu 5

试试这个:

SELECT (SELECT COUNT(*) AS good 
        FROM   table_good 
        WHERE  widget = 'Widget A' 
               AND good = 'Y') AS good, 
       (SELECT COUNT(*) AS bad 
        FROM   table_bad 
        WHERE  widget = 'Widget A' 
               AND bad = 'Y')  AS bad 
FROM   dual  
Run Code Online (Sandbox Code Playgroud)