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;where Columns 是一组列。

问题是:如何提供列列表?使用 html 复选框?如果是这样,我如何获得可用列的列表(查询是什么)?

有更好的方法吗?

我希望该解决方案与 SQLite 兼容,但是,如果需要,我可以更改我的数据库。

编辑:

其中一条评论说平均是什么意思?

我的意思是 (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 回答