コンポーネントをテーブルにカウントするために使用する次のOracle SQLクエリがあります。
select ct.name as component_type, count(1) as cnt from componentstats cs, componenttype ct
WHERE CS.COMPONENTTYPEID = CT.COMPONENTTYPEID AND CT.COMPONENTTYPEID IN (1000, 1300, 4000)
group by ct.name order by ct.name;
これは出力です:
COMPONENT_TYPE CNT
---------------------------------------------------------------------------------------------------- ----------------------
DATACENTER 1
ISP 1
NETWORK 1
たとえば 1300 などのタイプのコンポーネントがない場合、1 と 1 の 2 つの値が得られることに気付きました。数値の順序が厳密でなければならないため、結果 1、0、1 を取得する必要があります。この問題を解決する方法を教えてください。