2

次のように、日付と番号の列を持つテーブルがあります。

日付番号
2012 年 1 月 1 日 1
2012 年 1 月 2 日 1
2012 年 1 月 3 日 2
2012 年 1 月 4 日 1

同じ Number の行をグループ化し、最小の日付を取る sql クエリを作成したいと考えています。グループ化は、iof Number の値が前/次の行と同じ場合にのみ発生する可能性があります。したがって、結果は

日付番号
2012 年 1 月 1 日 1
2012 年 1 月 3 日 2
2012 年 1 月 4 日 1

.

Cheerz、ロードカイン

4

2 に答える 2

6

これを試して:

WITH   CTE AS(
       SELECT * ,ROW_NUMBER() OVER (ORDER BY [DATE] ) - 
                 ROW_NUMBER() OVER (PARTITION BY NUMBER ORDER BY [DATE] ) AS ROW_NUM
       FROM TABLE1)
SELECT NUMBER,MIN(DATE) AS DATE
FROM   CTE
GROUP BY ROW_NUM,NUMBER
ORDER BY DATE


SQL フィドルのデモ

于 2012-10-04T11:25:49.417 に答える
0
SELECT Number, MIN(date)
FROM table
GROUP BY Number
ORDER BY Number

あなたの要件はもう少し具体的であるため、これはどうですか?私はそれを自分でチェックしていませんが、あなたの要件を考えるとうまくいくかもしれません..

SELECT date, Number FROM (
SELECT Number, 
(SELECT MIN(date) FROM #table t2 WHERE t1.date <> t2.date AND t1.Number = t2.Number) AS date 
FROM table t1
) AS a
GROUP BY number, date
于 2012-10-04T11:03:35.023 に答える