所以我有两个使用MySql的表; Owners
和Cars
,其中所有者拥有生日,汽车有里程记录。表格看起来像这样:
Owners:
+-------+--------------+
| Field | Type |
+-------+--------------+
| id | varchar(10) |
| birth | datetime |
+-------+--------------+
Cars:
+--------------+-------------+
| Field | Type |
+--------------+-------------+
| licenceplate | varchar(6) |
| mileage | int(11) |
| owner | varchar(10) |
+--------------+-------------+
我想要一个SQL查询,它为我提供了拥有最高里程数的汽车的驾驶员十年。我基本上想要在几十年内出生的团体所有者,计算他们拥有的汽车的平均里程数,然后呈现平均里程数最高的十年。我基本上想要这样的结果:
90年代出生的车主最开车
我该如何解决?我用google搜索和谷歌搜索,但甚至无法找到如何选择十年。感谢任何帮助!
答案 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;