我有一个SQL查询,我正在尝试聚合计数,我遇到了一个问题。 我有一个表将用户连接到他们保存的几个类别。 UsersToCategories。因此,三个表合并为Users,Categories和UsersToCategories。以下查询将为我提供属于用户的所有类别的列表:
select c.CategoryID, c.CategoryName, utc.SortOrder
from Categories c
inner join UsersToCategories utc on utc.CategoryID = c.CategoryID
where utc.UserID = 1234
我有更详细的服务细节。一个类别中的多个服务可以是一对多关系。所以你有来自上面的类别,服务和服务类别
我需要的是一种将第二段伪代码加入到我编写的顶级查询中的方法,以便获得每个类别中有多少服务的计数。在这个级别,我不需要知道服务是什么,只是每个服务的原始计数。
我知道这是一些基本的东西,但我在sql上并不是那么棒,我似乎无法找到问题的确切答案。任何帮助表示赞赏。
答案 0 :(得分:1)
我认为您需要接近以下内容:
select c.CategoryID, c.CategoryName, utc.SortOrder, count(stc.ServiceID)
from Categories c
inner join UsersToCategories utc on utc.CategoryID = c.CategoryID
inner join ServicesToCategories stc on stc.CategoryID = c.CategoryID
where utc.UserID = 1234
group by c.CategoryID, c.CategoryName, utc.SortOrder, utc.UserID