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

回答編集履歴

1

追記

2017/08/31 00:32

投稿

yambejp
yambejp

スコア117923

answer CHANGED
@@ -1,4 +1,18 @@
1
1
  適切なインデックスが貼ってあるならご提示のgroup byの集計がベストです。
2
2
  ランクは集計後のCOUNTで行うのでしょうか?
3
3
  同じCOUNT数の場合同順とし、その後のデータが後ろたおしすればいいのでしょうか?
4
- 例示のものでいうとcount=3が1位、count=2が2位、count=1が4位?
4
+ 例示のものでいうとcount=3が1位、count=2が2位、count=1が4位?
5
+
6
+ # 追記
7
+
8
+ 集計後のデータを最終形すると処理自体は冗長になります
9
+ とりあえずこうしてみてください
10
+
11
+ ```SQL
12
+ select good,count,
13
+ (select count(*)+1 from
14
+ (select good,count(*) as count from vote group by good) as t2
15
+ where t1.count<t2.count) as rank
16
+ from (select good,count(*) as count from vote group by good) as t1
17
+ order by rank asc,good asc
18
+ ```