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
我有两个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