【发布时间】:2015-12-08 19:04:31
【问题描述】:
我有一个事件表,其中包含事件中受伤人数的列和事件中死亡人数的列。 Incident 表与 Participants 表链接,您可以在其中找到一个人的年龄列,还有另一个表 ParticipantTypes 的列类型(例如,man(id = 1),woman(id = 2))。 所以,我想检索受伤的列号,在类型是男人的地方被杀的列号,在他们旁边受伤的列号,在类型是女人的地方被杀的列号,所有按年龄分组。
select
ip.age as age,
sum(i.number_injured) as injured,
sum(i.number_killed) as killed
from Incidents i
inner join Participants ip on i.id = ip.incident_id
inner join ParticipantTypes ipt on ip.type_id = ipt.id
where ipt.id = 1
group by ip.age
以下查询仅适用于 ParticipantTypes.type = 1 (man)
我想要这样的东西
select
ip.age as age,
sum(i.number_injured) as injured where ipt.id = 1,
sum(i.number_killed) as killed where ipt.id = 1,
sum(i.number_injured) as injured where ipt.id = 2,
sum(i.number_killed) as killed where ipt.id = 2,
from Incidents i
inner join Participants ip on i.id = ip.incident_id
inner join ParticipantTypes ipt on ip.type_id = ipt.id
group by ip.age
【问题讨论】:
标签: mysql inner-join aggregate-functions