我有了像下面的數據表中的第一個實例(按日期排序)MySQL查詢爲得到一個元素
COL_A | COL_B
Item1 | Date1
Item2 | Date1
Item2 | Date2
Item1 | Date3
Item3 | Date3
現在我想查詢將返回每個項目的第一個實例,即結果設置應該像;
COL_A | COL_B
Item1 | Date1
Item2 | Date1
Item3 | Date3
如何做到這一點?
我有了像下面的數據表中的第一個實例(按日期排序)MySQL查詢爲得到一個元素
COL_A | COL_B
Item1 | Date1
Item2 | Date1
Item2 | Date2
Item1 | Date3
Item3 | Date3
現在我想查詢將返回每個項目的第一個實例,即結果設置應該像;
COL_A | COL_B
Item1 | Date1
Item2 | Date1
Item3 | Date3
如何做到這一點?
如果你需要的是每一個的第一個實例,並沒有進一步的信息,那麼它的簡單GROUP BY與MIN:
select Col_A, min(Col_B) MinColB
from tbl
group by Col_A
如果你想從表中已經發現的第一個實例的詳細信息:
select t1.Col_A, t1.Col_B, t1.otherField...
from tbl t1
inner join (select Col_A, min(Col_B) MinColB
from tbl
group by Col_A) t2 on t2.Col_A = t1.Col_A and t2.MinColB = t1.Col_B
您可以使用派生表查找每個Col_A的第一個日期,然後返回到表以檢索更多詳細信息
這是MIN(COL_B)
一個基本組聚集體,提供COL_B
是一個適當的日期時間類型:
SELECT
COL_A,
MIN(COL_B) AS FIRST_COL_B
FROM tbl
GROUP BY COL_A
ORDER BY COL_A ASC
我建議審查the MySQL manual上聚集函數和GROUP BY
。