繁体   English   中英

SQL查询对列的总和进行排序

[英]SQL query to order sum of a column

我有以下表格:

Drivers 表,带有 Driver_Code 列

Route_files 表,包含 Driver_Code 列和 Route_Code 列

Routes 表,包含 Route_Code 列和 Kilometers 列

对于 Drivers 表中的每个条目,Route_files 表中可能有超过 1 个具有相同 Driver_Code 的条目。 对于 Route_files 表中的每个条目,Routes 表中只有一个具有相同 Route_Code 的条目。

我要做的是根据他们驾驶的总公里数来订购司机。 因此,如果我有以下数据:

驱动程序:

Driver_Code
2
3
4

路线文件:

Driver_Code Route_Code
2           20
2           50
2           30
3           30
4           40

路线:

Route_Code Kilometers
20         1231
30         9
40         400000
50         24234

然后司机 2 驾驶路线 20 30 和 50,因此总公里数为 25474。同样,司机 3 开了 9 公里,司机 4 开了 400000。我需要的 SQL 查询应该输出:

Driver_Code Total_km
4           400000
2           25474
3           9

我尝试在 Route_files 和 Routes 表上使用内部连接来获得一个包含所有必要信息的“表”,希望我可以进一步使用这个获得的表,但不知道该怎么做。 我在 dBase 2019 工作(不幸的是,无法更改为更好的东西)。 任何提示和想法表示赞赏!

我终于设法做到了。 这是工作查询:

select 
  Driver_Code, 
  SUM(km) as Total_km 
from 
  Route_files 
  inner join Routes on Route_files.Route_Code = Routes.Route_Codes 
GROUP BY 
  Route_files.Driver_Code 
ORDER BY 
  Total_km Descending

最初我select Driver_Code, km, SUM(km) ,当尝试进行 GROUP BY 时,dBase 迫使我按 Driver_Code 和 km 进行分组,这意味着 SUM 函数被应用于每个条目而不是 on单个 Driver_Code 的所有条目,这是我需要的。 现在我终于明白 GROUP BY 是做什么的了!

感谢大家的意见!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM