Mysql 是否可以在不更改sql\u模式的情况下获取总和?
使用join语句从多个表中获取Mysql 是否可以在不更改sql\u模式的情况下获取总和?,mysql,sql,aggregate-functions,sql-mode,Mysql,Sql,Aggregate Functions,Sql Mode,使用join语句从多个表中获取SUM值时遇到问题。错误是: 这与sql\u mode=only\u full\u group\u by不兼容 是否可以在不更改sql_模式的情况下获取总和?如果可能的话,如何生成一个SQL语句 表燃油: vehicle_id | liter -----------+----------- 2 | 43.5 4 | 78.3 8 | 20.5 date_usage | vehicle_id ----------
SUM
值时遇到问题。错误是:
这与sql\u mode=only\u full\u group\u by不兼容
是否可以在不更改sql_模式的情况下获取总和?如果可能的话,如何生成一个SQL语句
表燃油
:
vehicle_id | liter
-----------+-----------
2 | 43.5
4 | 78.3
8 | 20.5
date_usage | vehicle_id
-----------+-----------
2019-10-01 | 8
2019-10-15 | 2
2019-10-20 | 8
2019-10-20 | 4
2019-11-02 | 8
表格用法
:
vehicle_id | liter
-----------+-----------
2 | 43.5
4 | 78.3
8 | 20.5
date_usage | vehicle_id
-----------+-----------
2019-10-01 | 8
2019-10-15 | 2
2019-10-20 | 8
2019-10-20 | 4
2019-11-02 | 8
SQL语句如下所示:
SELECT fuel.vehicle_id, SUM(fuel.liter), usage.date_usage
FROM fuel
LEFT JOIN usage ON fuel.vehicle_id = usage.vehicle_id
WHERE fuel.vehicle_id='8'
AND usage.date_usage >='2019-10-01' AND usage.date_usage <='2019-10-31'
GROUP BY fuel.vehicle_id
选择fuel.vehicle\u id、SUM(fuel.l)、usage.date\u usage
来自燃料
左连接燃油使用情况。车辆\u id=使用情况。车辆\u id
哪里有燃油。车辆\u id='8'
和usage.date\u usage>='2019-10-01'和usage.date\u usage解决这个问题有两种可能:
- 从
选择中删除列用法.date\u用法
- 使用列
用法。日期\u用法
也:
MAX
以获取列的最大值
MIN
获取列的最低值
- 获取列的任何值
因此,您的查询可以如下所示(在usage.date\u usage
列中使用MAX
):
注意:在MySQL中小心使用用法
等词作为标识符(例如表名和列名)。有一些是你应该避免的,或者用反勾号引用