MySQL 计算 MAX 时间戳后的结果

标签 mysql group-by max

我有两张 table

MTS

  • ID
  • customer_id
  • 创建于

  • ID
  • customer_id
  • 创建于

我想获取mts中某个条目的最后一次时间,并统计MAX(mts.created_at)之后mos的结果。所有内容均应按 customer_id 分组。

我有一个像这样的简单查询的想法,但这行不通。

SELECT id, created_at, COUNT(id) 
FROM mos
WHERE created_at > (SELECT MAX(created_at) FROM mts) 
GROUP BY customer_id 
LIMIT 10

最佳答案

此 SQL 语句只会在结果集中提供 1 行(无论如何)。不属于聚合函数的所有内容都应包含在 GROUP BY 中。

您的 SQL 语句应如下所示:

SELECT id, created_at, COUNT(id) 
FROM mos
WHERE created_at > (SELECT MAX(created_at) FROM mts) 
GROUP BY customer_id, id, created_at
LIMIT 10

关于MySQL 计算 MAX 时间戳后的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34640377/

相关文章:

Mysql获取带计数的子列表

mysql - 为什么没有聚合的结尾 Group By 会减慢我的查询速度?

Java-如何在整数序列中找到最小值和最大值?

Mysql Self Join查找同一张表中的父子关系

mysql - SQL函数应该是大写还是小写?

sql - 如何折叠 t-sql 中空值的行?

python - Python 字典中的最大值

T-SQL - 帮助进行多对多的 MAX 操作

php - 如何获取最后插入的 id 以及如何使用 php 检查更新查询的条件

mysql - 加入 Ruby on Rails