24時間以内にAVとファイアウォールのイベント数を表示するウイルス対策イベントを表示しようとしています。基本的に私は異なる条件で同じ列を合計しようとしています。私は、SUM関数でCASE WHENステートメントを使用してみましたが、結果を返しません。ファイアウォールイベントの数が続くAVイベントの数が続くホスト名を表示することが期待2つの合計結果を組み合わせる?
SELECT
events.arc_sourceHostName,
SUM(CASE WHEN events.arc_deviceEventClassId="fw" THEN events.arc_baseEventCount ELSE 0 END) AS "FWCount",
SUM(CASE WHEN events.arc_deviceEventClassId="av" THEN events.arc_baseEventCount ELSE 0 END) AS "AVCount"
FROM events
WHERE
events.arc_deviceVendor = "BitDefender"
AND
(events.arc_deviceEventClassId="fw"
OR
events.arc_deviceEventClassId="av")
GROUP BY
events.arc_sourceHostName
ORDER BY FWCount DESC
さらなる詳細
。
Hostname AVCount FWCount
Host1 5 4
Host2 3 5
カウントクエリを実行して、実際にそれらの 'where'条件で取得するレコードがあるかどうかを確認しようとしましたか? – hchaznedaroglu
申し訳ありませんが、間違って貼り付け、それは主に私が試した修正版です。はい、私はsumステートメントのないwhereステートメントのイベントを受け取ります。 – Jack
これは実行されますか?なぜ "arc_deviceEventClassId"の名前は "deviceEventClassId"ですか? – jlasierra