复杂的mySQL查询顺序依据

Dan*_*ams 10 mysql

示例数据:

?????????????????????????????????????????????????????????????
? ID ?   START    ?    STOP    ? USER  ?   FILE    ?  SIZE  ?
?????????????????????????????????????????????????????????????
?  1 ? 1330133409 ? 1330133410 ? user1 ? file1.zip ? 300000 ?
?  2 ? 1330133409 ? 1330133410 ? user1 ? file2.zip ? 300500 ?
?  3 ? 1330133409 ? 1330133410 ? user2 ? file1.zip ? 300000 ?
?  4 ? 1330133409 ? 1330133410 ? user2 ? file2.zip ? 300500 ?
?  5 ? 1330133409 ? 1330133410 ? user1 ? file3.zip ? 500000 ?
?  6 ? 1330133409 ? 1330133310 ? user6 ? file3.zip ? 500000 ?
?????????????????????????????????????????????????????????????

我需要创建一个MySQL查询来计算PER_USER_AVERAGE_BANDWIDTHwhere PER_USER_AVERAGE_BANDWIDTH = SUM(SIZE) / (STOP - START),然后按顺序PER_USER_AVERAGE_BANDWIDTH生成如下结果:

??????????????????????????????????????
? USER  ? PER_USER_AVERAGE_BANDWIDTH ?
??????????????????????????????????????
? user3 ? 110.37                     ?
? user1 ? 100.25                     ?
? user2 ? 75.70                      ?
??????????????????????????????????????

清楚如泥;)任何人?

egg*_*yal 2

我认为您的平均值应该是总持续时间的总大小,按用户分组:

SELECT   USER,
         SUM(SIZE) / SUM(STOP - START) AS PER_USER_AVERAGE_BANDWIDTH
FROM     my_table
GROUP BY USER
ORDER BY PER_USER_AVERAGE_BANDWIDTH DESC
Run Code Online (Sandbox Code Playgroud)

在sqlfiddle上查看它。