如何在SQL连接中分组/计数,包括三个表

时间:2014-03-17 12:55:46

标签: sql join group-by

我很想就我在项目中遇到的以下问题寻求帮助: 我有以下三个表:

  1. manual m
  2. 作者
  3. entity e
  4. 如果我加入他们:

    select e.name, a.name
    from manual m
    join 
    author a
    on a.id = m.f_id
    join 
    entity e
    on e.id = m.e_id
    

    我明白了:

    e.NAME              a.name
    Daniel, Marcus  Komponist
    Abene, Michael  Instrumentierung
    Abene, Michael  Komponist
    Abene, Michael  Bearbeiter
    Abene, Michael  Komponist
    

    我现在想要计算某个a.name用于e.name的程度。 将此应用于以下示例:我需要这样的事情:

    e.NAME              a.name                Count
    Daniel, Marcus  Komponist                 1
    Abene, Michael  Instrumentierung          1
    Abene, Michael  Komponist                 2
    Abene, Michael  Bearbeiter                1
    

    我现在已经知道如何计算和分组这个... 任何形式的帮助都非常感谢! 提前感谢您的提示。 干杯!

3 个答案:

答案 0 :(得分:0)

SELECT    e.name, 
          a.name,
          COUNT(*) AS Count
FROM      manual m
          join author a
              on a.id = m.f_id
          join entity e
              on e.id = m.e_id
GROUP BY  e.name, 
          a.name

答案 1 :(得分:0)

select e.name, a.name, count(*)
   from manual m
join 
   author a
   on a.id = m.f_id
join 
   entity e
   on e.id = m.e_id
group by e.name, a.name

答案 2 :(得分:0)

我认为您只需要GROUP BY两个名称列和COUNT() e.name

SELECT e.name, a.name, COUNT(e.name) AS total
FROM manual m 
JOIN author a
ON a.id = m.f_id
JOIN entity e
ON e.id = m.e_id
GROUP BY e.name, a.name
相关问题