回答編集履歴
2
修正
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
Limit10000としていますが、10000には明らかに届かない値がわかっているなら、それをあらかじめ省いてソート対象行を減らすなどどうでしょう?
|
1
|
+
Limit10000としていますが、上位10000には明らかに届かない値がわかっているなら、それをあらかじめ省いてソート対象行を減らすなどどうでしょう?
|
2
2
|
|
3
|
-
例えばcount1の平均値以
|
3
|
+
例えばcount1の平均値以上は上位10000件には絶対に含まれない場合、次のようなイメージです。
|
4
4
|
※実際に環境を準備できないので、早くなるのかわかりません...
|
5
5
|
(また動作テストもしていません。AVGの中でサブクエリ動作しましたっけ?)
|
6
6
|
```SQL
|
@@ -12,7 +12,7 @@
|
|
12
12
|
accounts
|
13
13
|
GROUP BY
|
14
14
|
accounts.id
|
15
|
-
HAVING COUNT(CASE item WHEN 1 THEN 1 END)
|
15
|
+
HAVING COUNT(CASE item WHEN 1 THEN 1 END) < AVG(
|
16
16
|
SELECT COUNT(item)
|
17
17
|
FROM accounts
|
18
18
|
WHERE item = 1
|
1
誤字修正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Limit10000としていますが、
|
1
|
+
Limit10000としていますが、10000には明らかに届かない値がわかっているなら、それをあらかじめ省いてソート対象行を減らすなどどうでしょう?
|
2
2
|
|
3
3
|
例えばcount1の平均値以下は上位10000件には絶対に含まれない場合、次のようなイメージです。
|
4
4
|
※実際に環境を準備できないので、早くなるのかわかりません...
|