テーブル内の最大値を見つけて、SQL グループを個別に表示し、各 SQL グループの最大値の数を表示します
P粉451614834
P粉451614834 2024-03-30 15:53:50
0
2
436

rree

つまり、これが私のテーブル SERVICE です。(ご覧のとおり) 最大経験値は 100 です。 位置 (左、右、上、下) ごとに形成されたグループごとに、経験値 100 の出現回数を見つけるクエリを作成する必要があります。

だから私はこう書きました:-

リーリー

期待される出力: -

リーリー ###しかし、 エラーが発生しました: - 「GROUP BY 式ではありません」

私のロジックでは、最初にグループをいくつかのグループに分割し、その後、having 句を使用して、経験値が最大値に等しい各グループ内のタプルを計算します。経験。

P粉451614834
P粉451614834

全員に返信(2)
P粉718730956

1 つの方法は、最大値のみを返すサブクエリで左結合を使用することです。任意の最大値を持つグループを返すにはケースが必要です。

リーリー

https://dbfiddle.uk/-8pHZ8wm

わかりやすくするために、以下のクエリを実行すると、値 100 を除くサービス テーブルのすべての行で max_ experience が空であることがわかります。簡単に言うと、グループ内の値が 100 と 0 で、まだ最大経験値に達していない行をカウントするだけで済みます。

リーリー

https://dbfiddle.uk/al8YYLk9

######編集###。答えはOracleでも機能しますが、サブクエリの後のキーワード

asを削除する必要があります。 リーリー https://dbfiddle.uk/hhGB_xXx

いいねを押す +0
P粉936568533

を使用して合計:

リーリー

ヴァイオリンを参照。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート