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

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