rree
つまり、これが私のテーブル SERVICE です。(ご覧のとおり) 最大経験値は 100 です。 位置 (左、右、上、下) ごとに形成されたグループごとに、経験値 100 の出現回数を見つけるクエリを作成する必要があります。
だから私はこう書きました:-
リーリー期待される出力: -
リーリー ###しかし、 エラーが発生しました: - 「GROUP BY 式ではありません」私のロジックでは、最初にグループをいくつかのグループに分割し、その後、having 句を使用して、経験値が最大値に等しい各グループ内のタプルを計算します。経験。
P粉7187309562024-03-31 14:00:05
1 つの方法は、最大値のみを返すサブクエリで左結合を使用することです。任意の最大値を持つグループを返すにはケースが必要です。
リーリーわかりやすくするために、以下のクエリを実行すると、値 100 を除くサービス テーブルのすべての行で max_ experience が空であることがわかります。簡単に言うと、グループ内の値が 100 と 0 で、まだ最大経験値に達していない行をカウントするだけで済みます。
リーリー ######編集###。答えはOracleでも機能しますが、サブクエリの後のキーワードasを削除する必要があります。
リーリー
https://dbfiddle.uk/hhGB_xXx