teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正

2016/05/17 04:06

投稿

hirohiro
hirohiro

スコア2068

answer CHANGED
@@ -1,6 +1,6 @@
1
- Limit10000としていますが、10000には明らかに届かない値がわかっているなら、それをあらかじめ省いてソート対象行を減らすなどどうでしょう?
1
+ Limit10000としていますが、上位10000には明らかに届かない値がわかっているなら、それをあらかじめ省いてソート対象行を減らすなどどうでしょう?
2
2
 
3
- 例えばcount1の平均値以は上位10000件には絶対に含まれない場合、次のようなイメージです。
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) > AVG(
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

誤字修正

2016/05/17 04:06

投稿

hirohiro
hirohiro

スコア2068

answer CHANGED
@@ -1,4 +1,4 @@
1
- Limit10000としていますが、あらかじめ10000には明らかに届かない値がわかっているなら、それをあらかじめ省いてソート対象行を減らすなどどうでしょう?
1
+ Limit10000としていますが、10000には明らかに届かない値がわかっているなら、それをあらかじめ省いてソート対象行を減らすなどどうでしょう?
2
2
 
3
3
  例えばcount1の平均値以下は上位10000件には絶対に含まれない場合、次のようなイメージです。
4
4
  ※実際に環境を準備できないので、早くなるのかわかりません...