
どうかご教示お願いいたします
テーブル名:table A
カラム:rank,名前,点数
1,name4,20
2,name2,15
3,name3,10
4,name1,5
テーブル名:table B
カラム:rank,名前,点数
1,name4,20
2,name2,15
3,name3,10
4,name1,5
テーブル名:table C
カラム:rank,名前,点数
1,name4,20
2,name2,15
3,name3,10
4,name1,5
上記3つのテーブルより
↓
まず結果として
カラム:ランク順,名前,合計,回数,1番率,2番率,2番以内率
1,name4,60,3,100,0,100
2,name2,45,3,0,100,100
3,name3,30,3,0,0,0
4,name1,15,3,0,0,0
このようにしたいのですが、わかりません
まず1つの年度で
回数=count(*)
1番率=(sum(rank = 1) / count(*))
で、率まで取れたのですが、
わからないことが
・合計点の取り方
・複数テーブルでの計算方法
・計算結果=>1番率ソート=>2番率ソート
この3点のやり方がわかりません
どうか教えてください
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
サンプルが中途半端ななのでなんとも言えませんが、これでどうでしょう?
create table tbl_a(rank int,name varchar(20),point int);
create table tbl_b(rank int,name varchar(20),point int);
create table tbl_c(rank int,name varchar(20),point int);
insert into tbl_a values
(1,'name4',20),
(2,'name2',15),
(3,'name3',10),
(4,'name1',5);
insert into tbl_b values
(1,'name4',20),
(2,'name2',15),
(3,'name3',10),
(4,'name1',5);
insert into tbl_c values
(1,'name4',20),
(2,'name2',15),
(3,'name3',10),
(4,'name1',5);
・集計
select name
,sum(point) as point_sum
,count(*) as count
,sum(rank=1)/count(*) *100 as ratio_1st
,sum(rank=2)/count(*) *100 as ratio_2nd
,sum(rank in (1,2))/count(*) *100 as ratio_1t_2nd
from (
select * from tbl_a
union all select * from tbl_b
union all select * from tbl_c
) as t1
group by name
order by point_sum desc
※ランクの考え方がわからないのでランク番号はいれていません
同順だったらどうするのか?
集計後のランクは合計値でみればいいのか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
下記の問合せを行うクエリを、P...
-
mysqlがインストールされている...
-
テーブル名が可変の場合のクエ...
-
#1062 - '0' は索引 'PRIMARY' ...
-
テーブル作成時のカラムについて
-
SQL文についての質問です。
-
「ストレージエンジン」とは何か
-
データベースの接続に失敗して...
-
同一日に複数レコードがある場...
-
MAMP 99ドル約1.6万円 高い...
-
あってますか?SQL
-
WHERE `年月日` = '晴' OR `年...
-
SQLです教えてくださいお願いし...
-
SQLを作ったのですがうまくいき...
-
(初心者)MySQLやmaraDBで、crea...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてください。
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
select文の実行結果に空白行を...
-
24時間以内に更新されたデータ...
-
空きのID番号を取得する方法
-
任意の上位の集計を取得するには?
-
MySQLのサブクエリ
-
SQLで連続したカラムが何個ある...
-
条件付けで集計したものをUNION...
-
時間帯テーブルから直近空き時...
-
LIMIT句で少なくとも1行は選択...
-
SQLローダーCSV取込で、囲み文...
-
単一グループのグループ関数で...
-
Oracleで「文字が無効です」の...
-
テーブルの最後(最新)のレコー...
-
並べ替えについて
-
group byの並び順を変えるだけ...
-
SELECT FOR UPDATE で該当レコ...
-
データ
-
【PL/SQL】FROM区に変数を使う方法
-
SQL*Loader Append
-
トランザクションログを出力せ...
おすすめ情報