0
SELECT
    HOUR (`Timestamp`) AS HOUR,
    COUNT(*) AS Alarms

FROM
    `alarms`
WHERE
    `Siteindex` IN ('4, 5, 8, 10, 11, 15')
AND `Datestamp` = '2012-11-07'
GROUP BY
    HOUR (`Timestamp`);

このコードは、からの各IDがIN ('4, 5, 8, 10, 11, 15')持っている場合Datestamp = '2012-11-07'にのみ機能しますが、それを持っている人だけをカウントするにはどうすればよいですか?

たとえば、上記のコードはNULL、2012年11月7日に15行しかないために返されますが、他の行に注意を払わずにすべてを返す必要があります。

4

3 に答える 3

1

あなたのwhere条項が問題である可能性が最も高い

WHERE `Siteindex` IN ('4, 5, 8, 10, 11, 15')

の種類に応じて、次のsiteindexように変更する必要があります

WHERE `Siteindex` IN (4, 5, 8, 10, 11, 15)

また

WHERE `Siteindex` IN ('4', '5', '8', '10', '11', '15')
于 2012-12-16T18:07:52.617 に答える
0

私はあなたが何を求めているのか完全にはわかりませんが、検索条件に一致する行の数を探しているだけなら、私は何か嘘をつくことを試みます:

SELECT COUNT(*)
FROM alarms
WHERE Siteindex IN ('4,5,8,10,11,15') AND Datestamp = '2012-11-07';
于 2012-12-16T17:47:39.017 に答える
0

これを試して

      SELECT  HOUR (`Timestamp`) AS HOUR,

  COUNT(Siteindex) AS Al

 FROM ( SELECT Siteindex FROM alarms WHERE `Siteindex` IN (4, 5, 8, 10, 11, 15))
`alarms`
 WHERE
  `Datestamp` = '2012-11-07'
GROUP BY
HOUR ;

これは、uが持っているIDのみをカウントします。

于 2012-12-16T18:11:34.163 に答える