2

私はSQLを初めて使用し、アプリでsqlite DBを使用していますが、クエリの作成に問題があります。

次のような列名を持つDBがあります。

Name1  Name2  Score1  Score2 Winner  Aces1  Aces2

これらが単一のゲームの統計であると想像してください。したがって、同じ名前を名前1または名前2の異なる行に含めることができます。

私は以下が欲しい:

a)エースの降順でプレーヤー名をリストに戻します。

たとえば、次の行を想像してください。

Nick George 39  35  Nick  2   4
Joe  Nick   17  39  Nick  1   0
George Jorge  11  39  Jorge  3  1 

次のリストを表示する必要があります://番号またはエース

George 7
Nick 2
Joe 1
Jorge 1

b)勝ち数も同じにしたい。

c)そして同じ平均点。

質問をお願いします。

4

2 に答える 2

4

ここでの問題は、データを非正規化された形式で保存した結果です。データの正規化について読んだ場合は、これらのクエリを簡単に作成できる形式でデータを保存できます。

select Winner, COUNT(*) from yourtable group by Winner order by COUNT(*) desc

select name, SUM(aces)
from
(
select Name1 as Name, Score1 as Score, Aces1 as Aces from yourtable
union all
select Name2 as Name, Score2 as Score, Aces2 as Aces from yourtable
) v
group by Name
order by SUM(aces) desc

平均点は読者の練習問題として残されています。

于 2012-09-20T10:44:08.783 に答える
0

名前を選択、SUM(aces)from(Name1をName、Score1をScore、Aces1をyourtable unionのAcesとして選択、Name2をName、Score2をScore、Aces2をyourtableのAcesとして選択)v SUM(aces)による名前の順序でグループ化説明

于 2012-09-20T13:03:43.990 に答える