SQL联接重复计数

用户名

我发现了一些类似的帖子,但不知道如何在我的情况下适用。本质上,在连接两个表时,我在输出中得到了重复计数。这是我正在查看的内容:

表1(t1)

Name    |  Type  |   Count
Chris      Blue      3
Chris      Red       2
Steve      Blue      10
Steve      Red       5
Steve      Green     4
Peter      Blue      7

表2(t2)

Name    |  Hours  
Chris      2.4 
Steve      1.5
Peter      0.2

询问

SELECT t1.name, t1.type, t1.count, t2.hours / count(t1.name) as avg_hrs
FROM t1 JOIN t2 on t1.name = t2.name
GROUP BY t1.name, t1.type 

所需的输出

Name    |  Type  |   Count  |  Hours
Chris      Blue      3         1.2
Chris      Red       2         1.2
Steve      Blue      10        0.5
Steve      Red       5         0.5
Steve      Green     4         0.5
Peter      Blue      7         0.2

电流输出

Name    |  Type  |   Count  |  Hours
Chris      Blue      3         2.4
Chris      Red       2         2.4
Steve      Blue      10        1.5
Steve      Red       5         1.5
Steve      Green     4         1.5
Peter      Blue      7         0.2

“小时”列显示错误。基本上,我想将t2中的小时数除以t1中名称出现的次数;取而代之的是,我在新生成的表中获得了每行t2.hours的完整值,当我查看汇总表时,这导致了一堆double / triple计数。

关于如何解决的任何想法?感谢您的指导。

豪尔赫·坎波斯

您可以这样做:

select t1.name,
       t1.type,
       t1.count,
       t2.hours/t1count.total as hours
  from t1 
       inner join t2 on (t1.name = t2.name)
       inner join
         (select name, count(*) total
            from t1
           group by name) t1count
        on (t1.name = t1count.name)

在小提琴上查看此处:http ://sqlfiddle.com/#!9/ 27a07a/4

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL联接重复计数

来自分类Dev

SQL计数表联接表

来自分类Dev

SQL结合计数与联接

来自分类Dev

SQL外部联接与计数功能

来自分类Dev

非重复计数SQL

来自分类Dev

SQL多表联接抛出重复

来自分类Dev

SQL重复行多个联接

来自分类Dev

SQL表具有多个重复项的联接-在一个日期范围内返回的计数小于X

来自分类Dev

列中的SQL重复计数

来自分类Dev

SQL累计非重复计数

来自分类Dev

SQL Select重复日期计数

来自分类Dev

SQL从内部联接中选择计数大于

来自分类Dev

SQL多重计数和联接

来自分类Dev

SQL从内部联接中选择计数大于

来自分类Dev

使用内部联接的SQL查询Distict计数

来自分类Dev

SQL计数行和内部联接

来自分类Dev

如何从联接中删除重复的行(SQL)

来自分类Dev

SQL中的内部联接返回重复的行

来自分类Dev

具有多个联接的SQL导致重复

来自分类Dev

SQL:查询联接中的重复行

来自分类Dev

重复值的 SQL 增量计数

来自分类Dev

具有2个联接和计数的SQL查询

来自分类Dev

具有左外部联接的X的SQL增量计数

来自分类Dev

SQL在联接表上计数唯一的真实值

来自分类Dev

sql-从多个联接表中获取匹配行的计数

来自分类Dev

SQL Server Pivot用于计数联接表中的实例

来自分类Dev

oracle sql左联接和计数,求和,分组

来自分类Dev

SQL计数+左联接+分组依据...缺少行

来自分类Dev

SQL 2左联接一个计数的查询