我正在尝试查找表格的最小日期值是否存在于特定范围值内。
因此,对于字段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
我看到它只返回范围查询中的最小日期值,而不是整个表中的最小日期值。如果表最小值不在范围内,我希望省略该行。反正有吗?
答案 0 :(得分: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' ;
答案 1 :(得分: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;