給与の範囲に基づいてグループを形成するSQLの次のコードについて考えてみます。
;With TableWithComputedColumn as
(
select
computedcolumn =
Case
when Salary<30000 then 'Under 30K'
when Salary>30000 and Salary<60000 then '30K-60K'
else 'Above 60K'
end
from Tbl_UserMaster
)
select computedcolumn, COUNT(*)
from TableWithComputedColumn
group by computedcolumn
これをMongoで実行したいと思います。CTEの部分では、最初{computed column}
に一時コレクションに出力してから、$group
そのコレクションに対してを実行する必要があると思います。別の方法(そして私が好む方法)は、集約パイプラインの最初のストリームとして$project
プロジェクトを作成してから実行することです。{computed column}
$group
db.UM.aggregate(
{$project: { "computed_column": { //something with $cond}} },
{$group: {_id: {Salary_Slab:"$computed_column"}, count: {$sum:1}}}
);
私が以前に尋ねた同様の質問にも答えてください:
それは基本的に私にピボット出力を与えます。この状況では、ピボットされていない出力が必要です。2つを比較するために、他の質問への回答は3つの列を作成します:{30K未満、30K-60K、60Kを超える}、1行のカウントで、30K未満、30K-60K、および60Kを超える場合は3行が必要です1つの列に、それぞれのカウントが2番目の列に表示されます。