我有一个包含日期和数字列的表格,如下所示:
日期编号 1-1-2012 1 2012 年 1 月 2 日 1 2012 年 1 月 3 日 2 2012 年 1 月 4 日 1
我想做一个 sql 查询,将具有相同编号的行分组并取最短日期。只有当 iof Number 的值与上一行/下一行相同时,才会发生分组。所以结果是
日期编号 1-1-2012 1 2012 年 1 月 3 日 2 2012 年 1 月 4 日 1
.
干杯,洛德凯恩
我有一个包含日期和数字列的表格,如下所示:
日期编号 1-1-2012 1 2012 年 1 月 2 日 1 2012 年 1 月 3 日 2 2012 年 1 月 4 日 1
我想做一个 sql 查询,将具有相同编号的行分组并取最短日期。只有当 iof Number 的值与上一行/下一行相同时,才会发生分组。所以结果是
日期编号 1-1-2012 1 2012 年 1 月 3 日 2 2012 年 1 月 4 日 1
.
干杯,洛德凯恩
试试这个:
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
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