ときに特定の値について統計を取りたくなることがあります。SQLにはMIN, MAX, AVG, SUMなどの集約関数が用意されています。集約関数を使用して、年ごとのチケット販売数の情報を取得します。結果は年でソートされます。
これを行うには、映画ごとのすべてのチケット販売異数を総計し、結果を年で並び替えます。
- SQLコードの場合:
C_LONGINT($vMin;$vMax;$vSum)
C_REAL($vAverage)
C_TEXT($AlertTxt)
  
$vMin:=0
$vMax:=0
$vAverage:=0
$vSum:=0
Begin SQL
SELECT MIN(Sold_Tickets),
MAX(Sold_Tickets),
AVG(Sold_Tickets),
SUM(Sold_Tickets)
FROM MOVIES
INTO :$vMin, :$vMax, :$vAverage, :$vSum;
End SQL
- 汎用SQLコマンドの場合:
C_LONGINT($vMin;$vMax;$vSum)
C_REAL($vAverage)
C_TEXT($tQueryTxt)
C_TEXT($AlertTxt)
  
$vMin:=0
$vMax:=0
$vAverage:=0
$vSum:=0
SQL LOGIN(SQL_INTERNAL;"";"")
$tQueryTxt:=""
$tQueryTxt:=$tQueryTxt+"SELECT MIN(Sold_Tickets), MAX(Sold_Tickets), AVG(Sold_Tickets), SUM(Sold_Tickets)"
$tQueryTxt:=$tQueryTxt+" FROM MOVIES"
SQL EXECUTE($tQueryTxt;$vMin;$vMax;$vAverage;$vSum)
SQL LOAD RECORD(SQL all records)
SQL LOGOUT
- SQLのEXECUTE IMMEDIATEコマンドの場合:
C_LONGINT($vMin;$vMax;$vSum)
C_REAL($vAverage)
C_TEXT($tQueryTxt)
C_TEXT($AlertTxt)
$vMin:=0
$vMax:=0
$vAverage:=0
$vSum:=0
$tQueryTxt:=""
$tQueryTxt:=$tQueryTxt+"SELECT MIN(Sold_Tickets), MAX(Sold_Tickets), AVG(Sold_Tickets), SUM(Sold_Tickets)"
$tQueryTxt:=$tQueryTxt+" FROM MOVIES"
$tQueryTxt:=$tQueryTxt+" INTO :$vMin, :$vMax, :$vAverage, :$vSum;"
Begin SQL
EXECUTE IMMEDIATE :$tQueryTxt;
End SQL
これらをテストするには、4D SQL Code Samplesデータベースを起動してメインウィンドウを表示させます。クエリモードを選択してUsing Aggregate functionsボタンをクリックします。