1

かなり自明であるべきです。私ができない理由:

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

最も古いタイムスタンプから 1 分以内に作成された行のみを返そうとしています。ありがとう!

4

3 に答える 3

1

集計関数を扱うときは、WHERE の代わりに HAVING を使用する必要があります... それでも、クエリはもう少し複雑になると思います。

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_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 に答える