由于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;
的内容,其中列是一组列。
问题是:如何提供列表列表? 使用html复选框?如果是这样,我如何获得可用列的列表(查询是什么)?
有更好的方法吗?
如果解决方案与SQLite兼容,我更愿意,但是,如果需要,我可以更改我的数据库。
修改
其中一条评论说平均值是什么意思?
我的意思是(1 / n)SUM(ai):从i = i:{列选择}到n =大小|列选择|
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
答案 0 :(得分:1)
使用以下查询,您可以获取表格列。
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'database_name' AND
TABLE_NAME = 'table';
答案 1 :(得分:0)
请尝试这个,我没有在您的情况下进行测试,但AVERAGE
条款中可以使用ORDER BY
函数,
SELECT * FROM teams where Country= 'USA'
order by AVG(Game-w, games-l, scoreAverage, redCards, yellowcards) ASC;