在MySql/php中基于几乎相同的多列对记录进行排序
假设MySql表中有以下内容: 在本表中,某些记录(子1-7)的值可能相同或接近相同;就像比尔、布什和凯特的情况一样。 我想根据记录之间的百分比相关性对表进行排序。你可以看到比尔和凯特几乎一模一样,其次是布什。该表应按以下顺序排序:比尔、布什、盖茨等。该表包含200多条记录,其中许多记录的值几乎相同。 如何在php中实现这一点?有什么想法吗 添加:查看响应后: 请注意两项记录:在MySql/php中基于几乎相同的多列对记录进行排序,php,mysql,sorting,Php,Mysql,Sorting,假设MySql表中有以下内容: 在本表中,某些记录(子1-7)的值可能相同或接近相同;就像比尔、布什和凯特的情况一样。 我想根据记录之间的百分比相关性对表进行排序。你可以看到比尔和凯特几乎一模一样,其次是布什。该表应按以下顺序排序:比尔、布什、盖茨等。该表包含200多条记录,其中许多记录的值几乎相同。 如何在php中实现这一点?有什么想法吗 添加:查看响应后: 请注意两项记录: 22+45+67+87+37+54+63=375 45+65+35+45+66+60+59=375 总计375,
- 22+45+67+87+37+54+63=375
- 45+65+35+45+66+60+59=375
select *
from your_table
order by abs(sub1 - avg(sub1)) +
abs(sub2 - avg(sub2)) +
abs(sub3 - avg(sub3)) +
abs(sub4 - avg(sub4)) +
abs(sub5 - avg(sub5)) +
abs(sub6 - avg(sub6)) +
abs(sub7 - avg(sub7)) +
我应该试试:
SELECT Name, ((Sub1 + Sub2 + Sub3 + Sub4 + Sub5 + Sub6 + Sub7) / 7) AS score FROM table
ORDER BY score DESC
试试这个:
SELECT * FROM <tablename>
ORDER BY (sub1+sub2+sub3+sub4+sub5+sub6+sub7) DESC
从中选择*
订单依据(sub1+sub2+sub3+sub4+sub5+sub6+sub7)描述
注:无需按、、进行区分,因为每个人的受试者编号都相同1。规范化您的设计。数据库表不是电子表格。