SQLにおいて表題のことをやりたかった。
■ 環境
- Amazon Athena
■ count()
単純に”count()“の結果を計算するのであれば特に問題なくできるのだが、1つのクエリで複数の”count()“を実行し、その結果を使って四則演算したかった。
SELECT
regist_date,
count(1) as total,
count(column1 < 10 or null) as count1, count(column1 >= 10 or null) as count2
FROM testtable
GROUP BY regist_date
以前使用した上記のSQLであれば、下記のようなことを行いたい。
count1 + count2
これを一度のクエリでは書けないので下記のようにすれば一応実行はできる。
SELECT regist_date, total, count1 + count2 as count3
FROM (
SELECT
regist_date,
count(1) as total,
count(column1 < 10 or null) as count1, count(column1 >= 10 or null) as count2
FROM testtable
GROUP BY regist_date
)
まぁ確かにできるのだがもっとスマートな書き方はないのかな。
以上。