具有不同计数聚合的SQL查询

具有不同计数聚合的SQL查询,sql,Sql,出版者 pub_id title_id city 1 1 NY 1 2 NY 2 3 CA 3 4 VA 头衔 title_id price genre 1 10 Horror 2 5 Bio 3 50 Science 问题: 创建一个SQ

出版者

pub_id  title_id    city

1         1           NY
1         2           NY
2         3           CA
3         4           VA
头衔

title_id    price   genre
1            10     Horror
2             5     Bio
3            50     Science
问题: 创建一个SQL查询,该查询提供 -酒吧id -头衔 -恐怖类标题

我一直很难编写这个SQL查询,无法理解如何在同一个查询中同时包含标题和恐怖类型的标题。如果能在这方面得到任何帮助,我将不胜感激。多谢各位

到目前为止,我尝试过的查询不知道如何将标题与恐怖类型结合起来:

select a.pub_id, count(a.titles) 
from publisher a 
  left join titles b on a.title_id = b.title_id group by a.pub_id

如果我使用have,那么我将无法计算标题的总数

使用以下查询获得结果

select 
   pub_id,
   count(*) as [titles], 
   SUM(CASE WHEN genre='horror' then 1 else 0 END) as [horror titles] 
from Publisher a
inner join titles b on a.title_id=b.title_id
group by
pub_id

您可以使用CASE语句来执行此操作

您可以使用此查询来获得预期的输出

select t.pub_id, COUNT(t.title_id) as title_id, t2.genre
from table1 t
 inner join 
 table2 t2 
on t.title_id = t2.title_id and t2.genre like 'Horror%'
group by t.pub_id, t2.genre
注意:将表1和表2的名称更改为您的表名

这里显示了输出


嗨,vkp,我已经用我尝试过的查询更新了问题。我不知道在这种情况下如何使用have。此外,我还可以使用另一个查询,例如选择a.pub_id,counta.titles,从发布者a选择counta.titles左连接a.title_id=b.title_id上的titles b,从发布者a左连接a.title_id=b.title_id上的titles b,从发布者a左连接a.title_id=b.title_id组