0

我正在使用笛卡尔积加入 2 个表,如下所示。

select p.type, i.amount 
FROM products p, invoice i
where (p.account = i.id); -- column headers cant be changed despite having same info

这当然会显示 2 列和各自的值。

但是,我随后想使用 COUNT/GROUP BY 和 SUM/GROUP BY 进一步操作数据,但无法找到任何可以使用 2 个表开始工作的相关示例。(把它们分开做是可以的,只是让它们一起工作才是问题所在)。

对于最终结果,我想显示 3 列显示 4 种类型的分组,每种类型下的条目数,以及每种类型的总金额/SUM,例如。

类型 - 类型计数 - 总值

一个 - 5 - 500

乙 - 6 - 1000

C - 1 - 50

D - 2 - 100

4

2 回答 2

2

你试过这个吗?

select p.type, count(p.type) Cnt, sum(i.amoumt) Total
FROM products p, invoice i
where (p.account = i.id)
group by p.type
于 2012-05-11T11:51:31.877 回答
0

请记住,查询的结果在逻辑上等同于表或视图——它们都是零或多行与一或多列的投影。

一般来说,您可以对表执行选择操作,也可以对查询或视图执行操作。尽管有一些限制,您也可以像对表一样对视图和查询应用删除和更新。

如果有疑问,请创建返回所需数据的查询,然后将其视为表:

select   type,
         count(type) count_type,
         sum(amount) sum(amount)
from     (select ... )
group by type

另请注意子查询因式分解子句,如果您需要多次引用相同的逻辑数据集,该子句具有特定的应用:

with my_data as(
    select ... )
select   type,
         count(type) count_type,
         sum(amount) sum(amount)
from     my_data
where    type in (select ... from my_data)
group by type
于 2012-05-11T12:44:53.390 回答