我需要帮助尝试按单个列的总绝对差异来排序表。从最低总差异到最高顺序排序。
例如,我将使用User1,并比较所有这些"""列到所有其他用户并单独获取每列的总差异,添加到差异的运行总计,并显示按该数量排序的所有其他用户,从最低到最高。
User1 an1和User2 an1之差为0,an2为1,an3为2。所以总差异将是3。
| User| an1 | an2 | an3 |
----------------------------
| 1 | 1 | 4 | 3 |
| 2 | 1 | 5 | 5 |
| 3 | 2 | 3 | 4 |
| 4 | 2 | 4 | 1 |
答案 0 :(得分:0)
您可以使用具有自联接的查询,如下所示:
select a.User User1,
b.User User2,
abs(a.an1 - b.an1) + abs(a.an2 - b.an2) + abs(a.an3 - b.an3) scorediff
from tbl as a
inner join tbl as b on a.User < b.User
order by 1, 2