1

应该是不言自明的;知道为什么我不能这样做:

select user_id from my_table where created_at<date_add(min(created_at), INTERVAL 1 MINUTE)

我试图只返回在最早时间戳的一分钟内创建的行。谢谢!

4

3 回答 3

1

在处理聚合函数时,您应该使用 HAVING 而不是 WHERE ......不过,我猜您的查询会有点复杂:

SELECT user_id, 
       created_at, (
           SELECT DATE_ADD(MIN(created_at), INTERVAL 1 MINUTE)
           FROM my_table
       ) AS earliest
  FROM my_table t1
HAVING created_at < earliest;

这是一个可以使用的SQLFiddle。)

于 2012-06-15T16:39:04.890 回答
0

尝试这个:

SELECT user_id
FROM my_table
WHERE created_at < DATE_ADD((SELECT MIN(created_at) FROM my_table), INTERVAL 1 MINUTE)
于 2012-06-15T17:09:49.663 回答
0
SELECT user_id FROM my_table
WHERE created_id <
(
   SELECT (min_dt + INTERVAL 1 MINUTE) mindt FROM 
   (SELECT MIN(created_id) min_dt FROM my_table) A
);
于 2012-06-15T17:24:32.050 回答