今回は、Silverの「S3 開発/SQL - S3.2 組み込み関数(集約関数)」からの出題です。
8, 8, 35, 4.375
4, 3, 15, 5
4, 4, 15, 3.375
上記のいずれでもない。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2015年4月20日
例題のSELECT文にはx>1というWHERE句が付いているので、テーブルtestのidが5から8までの4行だけがSELECTの対象となります。
count関数は、引数を*とすると行数を返しますが、引数に列名を入れると、その列がNULLでない行数を返します。id=8の行はyがNULLなので、count(*)は4ですが、count(y)は3になります。
sum関数は合計値を返しますが、この時、NULLの列は無視して計算します。
avg関数は平均値を返しますが、このとき、NULLの行は存在しないものとして平均を求めるので、この例題の場合は合計値の15を非NULL行数の3で割る、という計算になります。なお、入力値が整数型の場合、avg関数はNUMERIC型の値を返すので、実数型などへの型変換を行わなくても、期待する平均値を取得できます。
従って、正解はCです。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.