trdsql 集計
Posted on:
COUNT(*)
最初はCOUNT(*)です。全体の件数を数えることが出来ます。
集計関数を使用すると元の行と列のデータは出力されず、そこから集計された結果が出力されます。
以下の例は結果が1行なので、CSVの様に見えませんが、1行1列(ヘッダー付き)のCSVとして出力されています。
単純に件数を数えるだけですが、ヘッダーと解釈して数に含まないか等の注意が必要です。
trdsql -icsv -ih -oh "SELECT COUNT(*) FROM header.csv"
count(*)
3
検索条件の指定が出来ます。検索条件にあてはまる件数を知りたい時に使用します。
trdsql -icsv -ih -oh "SELECT COUNT(*) FROM header.csv WHERE id<'1'"
count(*)
2
COUNT(列名)
COUNT(列名) もよく使用します。RDBMSではNULLが除外されるので、COUNT(*)とは区別して使われます。
また、COUNTとDISTINCTを組み合わせると重複を省いた件数を出力できます。
以下のようなCSVファイルで実行してみます。
id,name
1,aaa
2,bbb
3,ccc
4,aaa
trdsql -icsv -ih -oh "SELECT COUNT(name) FROM abc.csv"
count(name)
4
trdsql -ih -oh "SELECT COUNT(DISTINCT name) FROM abc.csv"
COUNT(DISTINCT name)
3
集計関数は一度に実行することもできます。
trdsql -ih -oh "SELECT COUNT(name), COUNT(DISTINCT name) FROM abc.csv"
COUNT(name),COUNT(DISTINCT name)
4,3