给出这样的结果集:
Col1 Col2
============
BAML 491
BARC 362
BDPT 1
BNP 9
(从表中选择Col1,count(some_col)为Col2,其中another_col ='SomeCondition'组由Col1开始)
和另一个像这样:
Col3 Col2
============
BAML 494
BARC 366
BDPT 1
BNP 10
CALY 3
(从表中选择Col3,count(some_col)为Col2,其中another_col ='SomeOTHERCondition'组由Col3提供)
如何“合并”这两个查询以形成:
BAML 491 494
BARC 362 366
BDPT 1 1
BNP 9 10
CALY 3
请注意,前两个查询在相同的表上运行。我可以在这里看到一些Join的变种帮助(没有那么多的sql工作)。我只是无法弄清楚如何将这两个查询放入单个查询中以获得合并的reusltset。
答案 0 :(得分:1)
试试这个:
select b.col1, b.col2, a.col2
from (
select Col3, count(some_col) as Col2
from Table
where another_col = 'SomeOTHERCondition'
group by Col3
) as a
left outer join (
select Col1, count(some_col) as Col2
from Table
where another_col = 'SomeCondition'
group by Col1
) as b
on a.col3 = b.col1
我不确定SQLite是否支持这一点。
根据评论,上面的确有效,但你真的想要一个完整的外部联接,而SQLite不喜欢这样。您可以尝试使用两个LEFT OUTER JOIN和一个UNION伪装它:
select b.col1, b.col2, a.col2
from ... as a left outer join ... as b ...
UNION
select b.col1, b.col2, a.col2
from ... as b left outer join ... as a ...