这是一个令人费解的 SQL 问题(至少对我而言),涉及GROUP BY
和 AGGREGATES... 希望得到任何帮助。
我在一个记录有关自行车骑行和骑手信息的网站上工作。我们有一个表格,其中包含乘客 ID、骑行日期和骑行距离。我想显示一张表格,其中包含最新的游乐设施和距离,以及每个骑手的总距离。这是我的 sql 和输出(id
骑手 id 在哪里):
+--------+----------+----------+ | 编号 | 过时 | 距离 | +--------+----------+----------+ | 101240 | 2012-11-30 00:00:00 | 250 | | 101332 | 2012-11-22 00:00:00 | 31 | | 101313 | 2012-11-21 00:00:00 | 15 | | 101319 | 2012-11-21 00:00:00 | 25 | | 101320 | 2012-11-21 00:00:00 | 56 | +--------+----------+----------+
这很容易得到:
SELECT id, dated, distance FROM rides ORDER BY dated LIMIT 5
我似乎无法弄清楚的是,这些最近的游乐设施的车手累计总数......基本上:
SELECT sum(distance) FROM rides GROUP BY id
是否有可能在 SQL 中处理所有这些而无需进行编程?我试过做一些子查询和加入,但还没有成功!
在此先感谢 SO 社区。