寻找汽车里程最高的十年

时间:2018-01-05 10:41:15

标签: mysql sql

所以我有两个使用MySql的表; OwnersCars,其中所有者拥有生日,汽车有里程记录。表格看起来像这样:

Owners:
+-------+--------------+
| Field | Type         |
+-------+--------------+
| id    | varchar(10)  |
| birth | datetime     |
+-------+--------------+

Cars:
+--------------+-------------+
| Field        | Type        |
+--------------+-------------+
| licenceplate | varchar(6)  |
| mileage      | int(11)     |
| owner        | varchar(10) |
+--------------+-------------+

我想要一个SQL查询,它为我提供了拥有最高里程数的汽车的驾驶员十年。我基本上想要在几十年内出生的团体所有者,计算他们拥有的汽车的平均里程数,然后呈现平均里程数最高的十年。我基本上想要这样的结果:

90年代出生的车主最开车

我该如何解决?我用google搜索和谷歌搜索,但甚至无法找到如何选择十年。感谢任何帮助!

3 个答案:

答案 0 :(得分:1)

你想要那样的东西;

mileage

每十年计算一次最大<View style={{ borderRadius: 150, borderWidth: 10, borderColor: 'red', overflow: 'hidden', width: 300, height: 300, }} >

答案 1 :(得分:1)

请原谅以下任何语法错误,因为我没有MySQL环境。

你需要的逻辑有点不清楚,但我将你的问题解释为“每个出生十年的意思,每个司机的平均里程数是多少”。

编辑:正如@cdaiga指出的那样,我应该包含一个 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/slected" android:state_checked="true"/> <item android:drawable="@drawable/unselcted" android:state_checked="false"/> </selector> 子句来将结果限制为单行。我还考虑了@ Rainman的答案,并将额外的零点放在LIMIT的十年中,这可能更适合于演示和可读性。

编辑2:我已经调整了分组条款,以考虑评论中提到的错误。我不知道在MySQL中,您可以引用group-by子句中select子句中命名的列。

SELECT

答案 2 :(得分:0)

我必须将我得到的两个答案结合起来才能得到平均值。我这样得到了:

SELECT 
    FLOOR(YEAR(o.birth) / 10 ) * 10 AS decade, 
    (SUM(mileage) / COUNT(id)) AS avg_mileage_per_driver 
FROM 
    Owners o 
INNER JOIN 
    Cars c 
ON 
    o.id = c.owner 
GROUP BY 
    decade 
ORDER BY 
    decade 
DESC;