COUNTは、Microsoftで見つけたステータスのCOUNTのみを返します。そして、それらは拒否され、Wthdrawnされます。クエリにすべてのステータスをフィードし、それらすべての発生をカウントする必要があります。表示されないものはテーブルに0のままになります:
SELECT a.STATUS,
SUM(CASE
WHEN b.STATUS IS NOT NULL
THEN 1
ELSE 0
END) AS StatusCount
FROM (
SELECT DISTINCT STATUS
FROM tab1
) a
LEFT JOIN tab1 b ON a.STATUS = b.STATUS AND b.CompanyName = 'Microsoft'
GROUP BY a.STATUS;
これは何をしますか:
SELECT DISTINCT STATUS
FROM tab1
これにより、可能なすべてのステータスが検出されます。考えられるすべてのステータスを含む参照テーブルがある場合は、このクエリの代わりにそれを使用することをお勧めします。
次に、ステータスとcompanyNameによって、このテーブルでLEFTJOINを実行します。このように、テーブルにレコードがある場合にのみ、STATUSで一致を取得します。ある場合はSUMに1を追加し、ない場合は0を追加します。