mysql - 选择 3 个月前上次事件的地点

标签 mysql sql select

我有一张手机发票表,相关列是 Cellular_Account_id (INT) , billing_end_date(DATE) , 和 data_usage_GB .

每个帐户每个月都有单独的一行。我正在尝试获取过去三个月中每个月都没有使用数据的帐户列表。

总的来说,我对数据库还很陌生,所以我什至不确定我应该搜索什么语法,或者我应该采用什么方法。

我当然可以选择WHERE data_usage_GB = 0.000 AND MONTH(billing_end_date) = month(current_date()) -1但这只给我 1 个月范围内的信息。我不确定如何将结果组合在一起 data_usage_GB = 0.000过去三个月中的每一个月。

最佳答案

我会按帐户分组,获取每个帐户的最大日期,然后使用 having 子句过滤它们:

SELECT   cellular_account_id
FROM     invoices
GROUP BY cellular_account_id
HAVING   MAX(billing_end_date) < DATE_SUB(CURRENT_DATE, INTERVAL 3 MONTH)

关于mysql - 选择 3 个月前上次事件的地点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52878548/

相关文章:

php - 使用 PHP 自动将 UTC 时间转换为本地时间

java - 在java中将时间戳转换为日期

sql - 在 Hive 中将字符串转换为时间戳

sql - 如何在 sql 查询中创建空白/硬编码列?

sql - 有人可以帮我指出这个简单的 WHERE 子句有什么问题吗?

javascript - Ember,观察者以奇怪的顺序触发

mysql - MYSQL中某些表的同步INSERT

sql - 通过一种条件过滤多列

postgresql - Postgres 通过关系选择所有数据

java - Swing:函数的执行顺序