2016-08-26 5 views
1

を一意の値を選択:行ごとに私は5つの列があるテーブル持っている別の列から

vote_1, vote_2, vote_3, vote_4 and vote_5 

を、これらの列には名前が含まれていると私は今やろうとしていますが発生回数の合計を取得しています上記の列のすべての値の

最終的な結果は次のようなものでなければなりません:単一のSQLクエリでこれを達成するためにどのように

Value1 | 30 

Value2 | 25 

..... 

?。

+2

列が列挙されている(「2」より上)と、いつでもデザインの再考を開始する必要があります。 (プラス、私たちは 'different'の異なる定義を持っています) – Strawberry

答えて

3

UNIONを使用すると、複数の列を1つにまとめることができます。次に、GROUPCOUNT

select vote, count(*) as cnt 
from (
    select vote_1 as vote from mytable 
    union all select vote_2 as vote from mytable 
    .. 
    union all select vote_N as vote from mytable 
) sub 
group by vote 
+0

ポール、ありがとう、私の問題を解決しました。 –

+0

@ArtemisChaitidisこれを正しい答えとして選択すると、彼に感謝することができます。 – shmosel

関連する問題