SQL中的复杂查询

时间:2015-07-16 08:33:01

标签: python sql sqlite

我有一个非常复杂的查询(至少对于我的初学者级别),所以我希望任何人都可以帮助我。

这是我的表格的一个例子:

Device nr    type   state   I1     I2
    1          A     on     20     10
    1          A     off    20     10
    1          B     on     19     8
    1          B     off    20     10
    1          C     on     21     12
    1          C     off    20     10
    2          A     on     21     9
    2          A     off    20     10
    2          B     on     18     7
    2          B     off    20     10
    2          C     on     20     9
    2          C     off    20     10
    3          A     on     17     11
    3          A     off    20     10
    3          B     on     20     11
    3          B     off    20     10
    3          C     on     19     10
    3          C     off    20     10
    1          A     on     20     10
    1          A     off    20     10
    1          B     on     19     8
    1          B     off    20     10
    1          C     on     21     12
    1          C     off    20     10
    2          A     on     21     9
    2          A     off    20     10
    2          B     on     18     7
    2          B     off    20     10
    2          C     on     20     9
    2          C     off    20     10
    3          A     on     17     11
    3          A     off    20     10
    3          B     on     20     11
    3          B     off    20     10
    3          C     on     19     10
    3          C     off    20     10

我的问题是如何对被认为正常的设备进行分组和计数。

当设备中的所有类型(A,B和C)都正常时,设备正常。

如果"on" stateI1>19I2<11,则输入A或B或C即可。

凭借我有限的SQL经验,我知道如何设置条件:

select (*) from myTalbe
where (I1>19 and I2<11)

但是,如果AB以及C合适且所有人都有Device nr,我该如何计算呢?

所需输出的示例如下:

Device nr    OKcount
   1            15
   2            9
   3            22

因此,举例来说,这个输出会说15个设备的编号1在设备中有A和B以及C ok

1 个答案:

答案 0 :(得分:1)

最终确定konart答案的冷静方法:

Math.floor(25.54864869) // 25