(グループb [http://docs.oracle.com/javadb/10.6.2.1/ref/rrefsqlj32654.html] group by句に含まれないすべての列に集計関数が必要です。グループ化する場合は、次のことを意味します。グループごとに1つの行が必要です。句の列の個別の値が最終結果セットに表示されます。
これは、Oracleが、groupbyに含まれていない列の値のどれを取得するかを認識できないためです。このことを考慮:
A X
B X
Select col1, col2 from myTable group by col2; -- incorrect
Select min(col1), col2 from myTable group by col2; -- correct
なぜ最初は間違っているのですか?OracleはX値に対してAとBのどちらを取得するかを認識できないため、指定する必要があります。つまり、MIN、MAXなどです。
結果セットのウィンドウの下で作業できるようにする、この名前付き分析関数の代替手段があります。
今、あなたが場所ごとに総従業員の支払いをしたいなら、そしてあなたがこれを望むかもしれないすべての従業員。
SELECT name, age, location, SUM(pay) OVER(PARTITION BY location)
FROM employee
テーブルを1回だけクエリするので、これは@BobJarvisクエリよりも優れていると思います。私が間違っている場合は訂正してください。彼には従業員と従業員もいます。打ち間違え?