【发布时间】:2017-01-12 12:14:15
【问题描述】:
我使用 Mantis 错误数据库(使用 MySQL),我想查询在过去 2 周内哪些错误的严重性发生了变化,但只应指出错误的最后一次严重性变化。
问题是,每个 bugID(这是主键)我得到多个条目,这不是我想要的结果,因为我只想对每个 bug 进行最新的更改。这意味着我以某种方式错误地使用了 max 函数和 group by 子句。
在这里你可以看到我的查询:
SELECT `bug_id`,
max(date_format(from_unixtime(`mantis_bug_history_table`.`date_modified`),'%Y-%m-%d %h:%i:%s')) AS `Severity_changed`,
`mantis_bug_history_table`.`old_value`,
`mantis_bug_history_table`.`new_value`
from `prepared_bug_list`
join `mantis_bug_history_table` on `prepared_bug_list`.`bug_id` = `mantis_bug_history_table`.`bug_id`
where (`mantis_bug_history_table`.`field_name` like 'severity')
group by `bug_id`,`old_value`,`.`new_value`
having (`Severity_modified` >= (now() - interval 2 week))
order by bug_id` ASC
例如,对于 id 为 8 的错误,我通过此查询获得了三个条目。 id 为 8 的 bug 在过去 2 周内确实发生了三个严重性变化,但我只想获得最新的严重性变化。
我的查询可能有什么问题?
【问题讨论】:
标签: mysql group-by max aggregate-functions mantis