SQLite - 集計関数
sqlite> select * from AAA; ii tt rr ---------- ---------- ---------- 1 aaa 1.0 2 bbb 2.0 3 ccc 3.0 ddd 4.0 5 eee
SUMとTOTAL
合計値を返す。
対象がintegerの場合、sumはintegerで、totalはrealで返す。
対象が全てnullの場合、sumはnullを返し、totalは0.0を返す。
sqlite> select sum(ii),sum(rr),total(ii),total(rr) from AAA; sum(ii) sum(rr) total(ii) total(rr) ---------- ---------- ---------- ---------- 11 10.0 11.0 10.0 sqlite> select sum(ii),sum(rr),total(ii),total(rr) from AAA where ii isnull; sum(ii) sum(rr) total(ii) total(rr) ---------- ---------- ---------- ---------- 4.0 0.0 4.0 sqlite> select sum(ii),sum(rr),total(ii),total(rr) from AAA where rr isnull; sum(ii) sum(rr) total(ii) total(rr) ---------- ---------- ---------- ---------- 5 5.0 0.0
COUNT
引数が * の場合は全レコード数を返し、特定の列の場合はその列の値がnullでないレコード数を返す。
sqlite> select count(*),count(ii),count(tt) from AAA; count(*) count(ii) count(tt) ---------- ---------- ---------- 5 4 5
MAX, MIN, AVG
最小値、最大値、平均値
sqlite> select max(ii),min(ii),avg(ii),max(rr),min(rr),avg(rr) from AAA; max(ii) min(ii) avg(ii) max(rr) min(rr) avg(rr) ---------- ---------- ---------- ---------- ---------- ---------- 5 1 2.75 4.0 1.0 2.5
連結(GROUP_CONCAT)
textとして連結する。
sqlite> select group_concat(ii,'_'),group_concat(tt,'_'),group_concat(rr,'_') from AAA; group_concat(ii,'_') group_concat(tt,'_') group_concat(rr,'_') -------------------- -------------------- -------------------- 1_2_3_5 aaa_bbb_ccc_ddd_eee 1.0_2.0_3.0_4.0