0

次の SQL クエリを実行するためのより良い方法はありますか? table1 が 2 回検索されると感じていますが、これは何らかのトリックで回避でき、クエリの効率を高めることができるかもしれませんが、その方法がわかりません ;( これがクエリです (MySQL の場合):

SELECT a, SUM(count)
FROM table1
GROUP BY a
HAVING SUM(count) = (SELECT SUM(count) as total FROM table1 GROUP BY a ORDER BY total DESC LIMIT 1)

目標は、主要な累積とその累積で数値を返すことです。

table1 は、次のような 2 フィールド テーブルです。

a,count
1,10
1,30
1,0
2,1
2,100
2,4
3,10
4,50
4,55

そのデータ サンプルの結果は次のとおりです。

2,105
4,105

前もって感謝します。

4

4 に答える 4

0

このサブクエリは一度だけ実行され、他の回答が示唆するように事前クエリを作成する必要はありません (ただし、これは正しいことですが、必要ではありません)。データベース エンジンは、サブクエリがクエリの他の部分に依存する変数を使用していないことを認識します。を使用EXPLAINして、クエリがどのように実行されるかを確認できます。

この回答のトピックの詳細: https://stackoverflow.com/a/658954/1821029

于 2013-04-16T05:02:37.477 に答える