SELECT (SQL)
ORDER BY句は、ソートする列または列を含んだ式を指定するもので、いかなる場合でも構文の最後に指定する。カンマで区切ることで、複数列を指定できる。通常はASC(ascending order)、すなわち昇順指定であり、降順指定したい場合はDESC(descending order)と表記する。また、列別名での指定が可能なほか、序数での指定が可能である(たとえば、2番目の列で参照したい場合、ORDER BY 2とできる)。
ここでのNULLはDBMSに依存し、最大値をとるものと最小値をとるものがある。
グループ化を行った行に対して一つの結果を返す関数。SELECT句(但し、GROUP BY句で指定した列のみ)、HAVING句、ORDER BY句で使用可能。ネストは2段まで可能である。種類としてはAVG(平均値),MAX(最大値)、MIN(最小値)、SUM(合計)、COUNT(返される行数)、STDDEV(標準偏差)などがある。
COUNT
行数を返すものであって、合計値を返すものではない。合計値を返す場合はSUMを用いる。たとえば、正規化を行っていない販売実績(商品番号,商品名,販売日,販売個数)という表から、各商品における合計販売個数を求めようとした場合に SELECT 商品名,COUNT(販売個数) FROM 販売実績 GROUP BY 商品名
とすると、各商品名の登場頻度、すなわち販売された回数(個数は不問)が返されてしまうことになる。
また、前述のALL、DISTINCTが使用可能である。例文でCOUNT(DISTINCT 販売日)とした場合、日毎に販売された商品数が返されることになる(同じ日に売れた商品の重複が避けられるため。対して、省略、あるいはALLを使うと延べ数となる)。
※COUNT(*)とすると、NULL値を含めた全ての行数を返すが、COUNT(列名)とした場合、NULL値は返さない。