2

ここに画像の説明を入力

これらは私のDBテーブルデータです{私は1つのテーブルのみを維持しています}

各 start_date から最大 3 つのデータをフェッチする必要があります。

クエリを作成するアイデアを教えてください。

4

2 に答える 2

1

私はあなたにこの質問を提案するかもしれません-

SELECT * FROM (
  SELECT t1.*, COUNT(*) pos FROM table t1
    LEFT JOIN table t2
      ON t2.start_date = t1.start_date AND t2.event_id <= t1.event_id
  GROUP BY
    t1.start_date AND t1.event_id
  ) t
WHERE
  pos <= 3;

event_idグループ内のminを含む3行を選択しstart_dateます。

于 2012-11-08T07:28:34.383 に答える
1
SELECT a.*
FROM Table1 a
INNER JOIN Table1 b ON a.start_date = b.start_date AND a.event_id <= b.event_id
GROUP BY a.event_id,a.start_date
HAVING COUNT(*) <= 3
ORDER BY a.start_date 
于 2012-11-08T07:17:11.323 に答える