我这里有一个问题,我希望有一个简单的解决方案。我会尽量简化:
- 票属于参加者
- 例子:
select * from tickets JOIN attendees ON attendee.id = tickets.attendee_id
- 与会者有一个名为“收入”的小数列
也就是说,我需要运行一个查询,该查询将返回有关门票的各种信息,包括总收入。问题是,如果 2 张门票属于同一个与会者,则会将他们的收入计算两次。我怎样才能只对与会者收入进行一次汇总?
我不想使用子查询,因为我的 ORM 让这很困难。另外,如果我想对多列执行此操作,则子查询解决方案无法扩展。
这是我所拥有的:
- 1 名与会者收入为 100
- 2 张都属于该与会者的门票
Select count(tickets.*) as tickets_count
, sum(attendees.revenue) as atendees_revenue
from tickets LEFT OUTER JOIN attendees ON attendees.id = tickets.attendee_id;
=> 这告诉我attendees_revenue
是 200。我希望它是 100。因为数据库中有一个出席者的 existing_revenue 为 100。我不希望出席者被重复计算。
请让我知道这是否可能。