如果需要將資料分組,用 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 |
Trackback Address :: http://blog.raienet.com/trackback/408
