2016-11-22 15 views
0

私は、より大規模なビューを最適化しようとしています。条件が異なる個数をカウントします。

現在、私はサブセレクションを5回使用して会社IDのカウントを取得しています。

(Select count(id) from company table where prospecting.stage = 'qualify') as Qualify, 
(Select count(id) from company table where prospecting.stage = 'targetted') as Targetted, 

各企業が5つの段階を通過し、私は単純に別の列に会社の所在地によって各段階における企業の量をカウントします。

私は1つの選択肢でこれを実行しようとしていますが、ちょっと立ち往生しています。

 Location | Stage: Qualify | Stage: Targetted | Stage 3 | Stage 4 | Stage 5 | Total 

が集計やサブクエリを含む式に集約関数を実行できません:

SUM(COUNT(CASE WHEN prospecting.stage = 'Qualify' THEN '1' ELSE '0' END)) as [Qualified] 
SUM(COUNT(CASE WHEN prospecting.stage = 'Targetted' THEN '1' ELSE '0' END)) as [Targetted] 

は、だから、これらの線に沿って何かを探してしまいます。 - 意味がある。

prospecting.stage = 'XYZ'のCompany.IDをステージごとに別々の行に数える必要があります。

アドバイスはありますか? :(

+0

あなたが何であるかのテーブルに関する情報を提供する場合があります将来的にはアクセスして、彼らがどのように関連しているかを知ることで、適切な回答を提供するのがずっと楽になります。 – jpw

答えて

1

ドロップcount機能およびケース式でintに文字からデータ型を変更するあなたの式は次のようになります。

SUM(CASE WHEN prospecting.stage = 'Qualify' THEN 1 ELSE 0 END) as [Qualified] 
+0

ああ、私の神様、それは簡単でした!O_O – Justin

+1

助けてくれてありがとう、私は今どこが間違っていたのかをはっきりと理解しています:) とても有難い。 :) – Justin

関連する問題