1

の結果として次のデータをイメージします。SELECT * FROM teams;

Country    Games-W    Games-l    ScoreAverage    RedCards    YellowCards
USA        0.18       0.72       0.67            .01         .08
Mecixo     0.28       0.62       0.77            .06         .01
Italy      0.48       0.52       0.87            .07         .00
Spain      0.78       0.22       0.97            .08         .18

どうすれば次のことができるのか知りたいです。

特定の列に動的ソートを実装する方法を知っています。ドロップダウンを使用して、ユーザーはソートする列を選択して [Go] をクリックできます。

順列ごとにクエリを作成することなく、一連の列を並べ替える良い方法を見つけたいと思います。

SELECT *, AVERAGE(Columns) as OverAll FROM teams order by OverAll ASCE;Columns が列のセットであるようなもの。

質問は次のとおりです。列のリストを提供するにはどうすればよいですか? HTMLチェックボックスを使用していますか? その場合、使用可能な列のリストを取得するにはどうすればよいですか (クエリとは何ですか)?

これに対するより良いアプローチはありますか?

ソリューションが SQLite と互換性があることを望みますが、必要に応じてデータベースを変更できます。

編集:

コメントの1つは、平均とはどういう意味ですか?

つまり (1/n)SUM(ai):i= i:{columns selected} から n = Size|columns selected| まで

SELECT *, AVERAGE(Game-w, games-l, scoreAverage, redCards, yellowcards) as OverAll FROM teams where Country= 'USA' order by OverAll ASCE;次のようになります。

Country    Games-W    Games-l    ScoreAverage    RedCards    YellowCards    average
USA        0.18       0.72       0.67            .01         .08            .32
4

2 に答える 2

1

以下のクエリを使用して、テーブルの列を取得できます。

SELECT COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'database_name' AND 
      TABLE_NAME = 'table';
于 2013-07-26T10:45:23.483 に答える
0

これを試してください。あなたのケースではテストしていませんが、AVERAGE関数はORDER BY節で使用できます。

SELECT * FROM teams where Country= 'USA' 
order by AVG(Game-w, games-l, scoreAverage, redCards, yellowcards) ASC;
于 2013-07-29T05:28:27.050 に答える