我使用笛卡儿积分加入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,例如
类型 - 类型计数 - 总值
A - 5 - 500
B - 6 - 1000
C - 1 - 50
D - 2 - 100
答案 0 :(得分:1)
你试过这个吗?
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
答案 1 :(得分:0)
请记住,查询的结果在逻辑上等同于表或视图 - 所有这些都是具有一列或多列的零行或多行的投影。
一般来说,您可以根据select对表进行操作,也可以对查询或视图执行操作。尽管有一些限制,您也可以像对表一样对视图和查询应用删除和更新。
如果有疑问,请创建返回所需数据的查询,然后将其视为表格:
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