如果需要將資料分組,用 group by 倒是不錯的方法。

假設有個資料表 my_db 內容如下
id   type1    column1        date1
----------------------------------------
1    red        a        2008-04-14
2    blue       b        2008-04-18
3    blue       c        2008-04-20
4    gold       d        2008-04-24
5    gold       e        2008-04-28

想要將資料分組,並挑出各組第一筆資料,可以這麼寫:
select colunm1 from my_db group by type1 order by date1
因 group by 的特性,會找到各分組的第一筆資料。可以由資料表得到 a, b, d

那麼,如果要得到各組最後一筆資料呢?
因無法藉 group by 指令特性表達,只好採用複雜一點的方式,加上含 group by 的 SQL 子句變通一下,可以這麼寫:
select column1 from my_db where date1 in (select max(date1) from my_db group by type1) order by date1
以上 SQL 語法可以找到各分組最後一筆資料,可以由資料表得到 a, c, e

自認不是資料庫高手,若有更好方法,歡迎討論~

2008/04/28 11:52 2008/04/28 11:52
2008/04/28 11:52 

Trackback Address :: http://blog.raienet.com/trackback/408


[◀ PREV][1]... [19][20][21][22][23][24][25][26][27]... [395][NEXT ▶]