SQL语句,对出现次数求和,对它们进行分组,并根据出现次数从最高到最低排序

时间:2014-10-20 15:39:21

标签: sql-server

我无法使用sql-server从我的数据库中提取信息来创建报告。我有3个表:事件,行动和机构。

在事件表中,我有一些属性,例如

primary key (incident_id) 
and others (status and action_id). 

在我的Action表中,我有

foreign keys (incident_id and agency_id) 
a primary key (action_id). 

在我的

Agency table 

我有一个

primary key (agency_id) 
and other attributes such as (agency_name and agency_type).

我需要一个sql语句,该语句根据类型进行分组,对事件所具有的操作数进行求和,并从状态关闭的最高位置到最低位置进行排序。

非常感谢任何帮助。 谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

使用MySQL语法,以下内容可帮助您顺利完成任务:

SELECT ag.agency_type, count(ac.action_id)
FROM 
incident AS i INNER JOIN 
action AS ac ON i.incident_id=ac.incident_id INNER JOIN
agency AS ag ON ac.agency_id=ag.agency_id
WHERE i.status='Closed'
GROUP BY ag.agency_type
ORDER BY count(ac.action_id) DESC;