0

我正在尝试查找表的最小日期值是否存在于特定范围值内。

因此,对于该字段,date_created我想在整个表中找到该字段的最小值,因为它存在于特定用户中。但是我想看看在查询中,比如在特定月份之间,该查询中是否存在该最小表值。

我还使用 group by 来获取用户的特定最小值。这是我目前的查询,

SELECT user_id,
       Min(date_created) AS first_date
FROM   user_transactions
WHERE  DATE BETWEEN '2013-04-01' AND '2013-05-30'
GROUP  BY user_id

我看到它只返回范围查询中的最小日期值,而不是整个表。如果表最小值不在范围内,我希望省略该行。有没有办法做到这一点?

4

2 回答 2

3

根据您编辑的问题:

答案可能是:

SELECT user_id, MIN(date_created) AS first_date
FROM user_transactions
GROUP BY user_id
HAVING first_date BETWEEN '2013-04-01' AND '2013-05-30' ;
于 2013-06-16T03:32:28.963 回答
1

使用子查询date_created为特定用户选择最小值。然后检查日期是否在范围内。

SELECT
 u1.user_id, u1.date_created AS first_date
FROM
 user_transactions u1
WHERE
 u1.date_created =
 (
   SELECT MIN(u2.date_created)
   FROM user_transactions u2
   WHERE u2.user_id = u1.user_id
 )
 AND u1.date_created BETWEEN '2013-04-01' AND '2013-05-30'
GROUP BY
 user_id;

工作SQL 小提琴

于 2013-06-16T03:07:00.383 回答