我正在处理两个我想要组合成一个的SQL查询,因此第一个查询的结果将在第一列中,第二个结果将在第二列中.我该如何实现这一目标?
我试过联盟,但它会把结果分成两行......那不是我想要的......
select count(*) as ColumnA from Inventory i, Sale s where i.vin=s.vin and i.condition='new'
select count(*) as ColumnB from Inventory i, Sale s where i.vin=s.vin and i.condition='used' order by 1 desc;
Run Code Online (Sandbox Code Playgroud)
您可以使用稍微不同的查询同时获取两个计数,这将比组合两个查询稍微更有效:
SELECT
SUM(CASE WHEN i.condition = 'new' THEN 1 ELSE 0 END),
SUM(CASE WHEN i.condition = 'used' THEN 1 ELSE 0 END)
FROM
Inventory i
JOIN
Sale s ON i.vin = s.vin
Run Code Online (Sandbox Code Playgroud)
您可以在一个查询中使用组合两个子查询,如下所示:
select
(select count(*) from Inventory i, Sale s where i.vin=s.vin and i.condition='new') as New,
(select count(*) from Inventory i, Sale s where i.vin=s.vin and i.condition='used') as Used
Run Code Online (Sandbox Code Playgroud)
你想通过声明来实现什么目标?