出處:
(爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开) 2007-10-23于浙江杭州) 研究:
--方法1
select a.* from tb a where val = (select max(val) from tb where name = a.name) order by a.name
--方法2:
select a.* from tb a where not exists(select 1 from tb where name = a.name and val > a.val)
--方法3:
select a.* from tb a,(select name,max(val) val from tb group by name) b where a.name = b.name and a.val = b.val order by a.name
--方法4:
select a.* from tb a inner join (select name , max(val) val from tb group by name) b on a.name = b.name and a.val = b.val order by a.name
--方法5
select a.* from tb a where 1 > (select count(*) from tb where name = a.name and val > a.val ) order by a.name 1.解析: 首先將所有tb表中的數據取出,顯示需要條件設定: val 再次查詢tb表,為tb表中的name值逐個對查詢出所有的表進行全部判斷,只要符合name相同.匹配則成功!
與tab表匹配完成以後,立即執行max(),將值返回給試圖,待顯示....... 直到子查詢中的值逐個判斷完成以後....
2.解析: 首先將所有tb表中的數據取出,顯示需要條件設定 boolean 再次查詢tb表,返回的結果集,需要設定條件: name值需要和所有值中的name相同,但是當前子查詢中的val需要比所有值中的val大,
意思也就是:結果集中當前name最大的數值. ----->  這與max() min() 敲好吻合!!!!!
最後使用 not exists() 判斷如果是最大的數值,那麼顯示所有的

3.解析:

首先將所有tb表中的數據取出, 對每組數據使用函數max()篩選最大值. 保存在別名為 b 的集合中,
通過條件,只要符合a中的名稱 與 b中最大數據的名稱相同, 並且,a中的val值也必須和 b 中查詢出來的最大值相等. 就可以顯示. 這裡注意的是他的寫法:可以多重的查詢表.....,然後可以將表與表進行篩選: select * from table1 t1,(select * from table2 x)t2 
4.解析: 這種方式也第三種也就大同小異了....  5.解析: 這種方式與第2中方式也是大同小異的.....
從這幾種方式觀察來看,此作者已經可以特別熟練使用sql語言.對此人的功力之深厚感到無限的敬佩與仰慕! 希望中國IT界的精英們,多多為后生們提供好的學習方法,與技巧. 在您的不懈努力之余,悄悄的已經為很多需要幫助的小菜菜們提供了大量的知識財富! 在此,對你們至以崇高的敬意!敬禮.... 爱新觉罗.毓华:未經您的允許,在這裡貼出了您的帖子.希望見諒!!!謝謝... 如果大家對我有什麽意見的話,可以與我聯繫:507492201