2017-06-27 3 views
3

私はsqliteデータベースを使っています。 表は次のとおりです。sqliteのローによる平均

などです。これらのコマンドの後に

私はこの結果を得ました。各行にはIDとIDに関連付けられたポイントがあります。

enter image description here

今、私は、行によってポイントの平均値を取得したいのですが、降順に平均でをソート。 私が欲しいのです:

sparrow| 56 [(44+68)/2] 
white | 41 ([46+67+11)/3]  
smith | 33 [(11+25+65)/3] 
butch | 24 [(11+26+11)/3] 
gordon | 11 [11/1] 

私はそれをどのように行うことができますか?おかげさまで

答えて

2

あなたが一緒にすべてのポイントテーブルをがどんな場合、あなたは、単にグループごとに平均値を計算することができます。私がしたい場合は、あなたのコードを実行した後 :

SELECT id, 
     avg(points_a) 
FROM (SELECT id_a AS id, points_a FROM points_a_table 
     UNION ALL 
     SELECT id_a AS id, points_a FROM points_b_table 
     UNION ALL 
     SELECT id_a AS id, points_a FROM points_c_table 
     UNION ALL 
     SELECT id_a AS id, points_a FROM points_d_table) 
GROUP BY id 
ORDER BY avg(points_a) DESC; 
+0

はそんなに – Ford1892

+0

申し訳ありませんが、もう一つの質問に感謝結果の列 'id'を' ID_TABLE'の対応する 'number'にマッチさせます。どうすればいいですか? 結果は次のようになります。 '25 | 56' ' 76 | 41' '1 | 33' などありがとうございます。 – Ford1892

+0

それは別の質問でしょう。 (これは左結合で解決できます) –