【问题标题】:what sql can be used to count value in range什么sql可以用来计算范围内的值
【发布时间】:2016-11-08 03:44:07
【问题描述】:

我有2张桌子,我想得到结果

name   min   max     count-of-occource-table2-value
chr1   10001 20000   4
chr1   30001 40000   1
chr2   110001 260000  2
...    ...    ...     ...

表 1:

name  min  max
(chr1,(10001,20000))
(chr1,(30001,40000))
(chr2,(110001,260000))
(chr2,(160001,360000))
(chr3,(260001,410000))
(chr3,(360001,460000))
(chr3,(410001,560000))
(chr4,(460001,610000))
(chr4,(560001,660000))
(chr4,(610001,710000))

表2:

name  value
(chr1,10001)
(chr1,10015)
(chr1,10026)
(chr1,10030)
(chr1,30038)
(chr2,110101)
(chr2,160001)
(chr3,360101)
(chr3,410101)
(chr4,610100)
(chr4,610001)

如果 table1.name= table2.name && table2.value in table1[min,man] 则计数加 1

怎么做

select table1.name, table1.min,table1.max, table1.name= table2.name and table2.value in table1[min,man]的出现次数

【问题讨论】:

    标签: sql


    【解决方案1】:
    SELECT A.name, A.min, A.max, SUM(CASE WHEN A.name = B.name AND (B.value BETWEEN A.min AND A.max) THEN 1 ELSE 0 END) AS countofoccourcetable2value
    FROM table1 A
    INNER JOIN table2 B ON A.name = B.name
    GROUP BY A.name, A.min, A.max
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-05
      • 2018-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-03
      相关资源
      最近更新 更多