SQL 计算对一个对象执行的每个操作的数量(使用不同的表)

SQL count number of each actions performed on one object (using different tables)

我有两个table,一个是"Activity"table

UserId    ActionID    companyId
2971       1            334
2971       4            334
3343       2            124
4416       3            231
4416       3            231

另一个是 "ActionType" table,其中包含以下列:

ActionID    ActionTypeName
1           Download
2           Buy
3           View
4           Click

我应该如何构建我的 SQL 以获得每个用户的每个不同的操作、名称和他们的计数?

我想要的结果是这样的:

UserId    ActionId    ActionTypeName  ActionCount
2971      1           Download        1
2971      4           Click           1
3343      2           Buy             1
4416      3           View            2

真的很挣扎SQL。

感谢帮助

你可以这样使用:

SELECT a.UserId, a.ActionId, b.ActionTypeName, COUNT(*) AS ActionCount
FROM Activity a
INNER JOIN ActionType b
ON a.ActionId=b.ActionId
GROUP BY a.UserId, a.ActionId, b.ActionTypeName

使用 group by 子句得到如下计数:

  Select u.userid, a.actionid,a.actiontypename , count(actionid)
   from activity u
   inner join actiontype a
   on a.actionid = b.actionid
   group by u.userid, a.actionid,a.actiontypename