0

もともとブール値として作成した単純な上下投票列のあるテーブルがあります。true賛成票false、反対票です。ただし、この種のクエリ結果を実現するために集計関数を使用する方法がわかりません。たとえば、5true行と2行falseは+3の投票に等しいはずです。

列を+1と-1のsmallintに変更する必要があると考えています。これは正しいです?このようなものをクエリするためのより良い方法はありますか?

4

1 に答える 1

5

データ型を変更する必要はありません。CASEを使用して-1と1に変換し、式を合計します。

SELECT sum(vote_columnの場合は1、それ以外の場合は-1 end)
your_tableから

NULL値を適切に処理するには、次を使用します

SELECT sum(casevote_column
              trueの場合、1
              falseの場合、-1
              それ以外の場合0
           終わり)
your_tableから
于 2011-03-12T17:40:34.000 に答える