web-dev-qa-db-ja.com

DISTINCTごとにすべての行を数える

WHEREステートメントのすべての行を数える方法:

SELECT DISTINCT column1 FROM table COUNT WHERE date::text LIKE '%2014%';

私の出力:

column1
=======
info1
info2
info3

望ましい出力:

column1|number_of_rows
=====================
info1  | 2000
info2  | 1500
info3  | 1000

どうすればそれを改善できますか?

前もって感謝します。

1
Mareyes

この場合、 GROUP BY を使用して個別のcolumn1値を取得できます。日付をテキストに変換する代わりに、 [〜#〜] extract [〜#〜] を使用できますこの目的のために機能します。

select 
    colum1, 
    count(*) as number_of_rows
from 
    your_table
where 
    extract(year from date) = 2014
group by 
    column1;
5
McNets