|
例表如下: 表名:MYTEST TID COL1 COL2 COL3 1 1 A A 1查找表中的一個字段,重復的只找一個: SELECT DISTINCT COL1 FROM MYTEST; 2查找表中的多個字段,其中某個字段不重復: SELECT * FROM MYTEST WHERE rowid IN (SELECT min(rowid) FROM MYTEST GROUP BY COL1); 重點:select * from 表 where 列ID in (select min(列id) from 表 group by 不想重復的列名) 結果為: 其中rowid為oracle中的虛擬column用來指向表中一個row的存放地址,改為其它的不能運行(這樣理解不知對不對?哪位朋友有更好的理解請給我留言) min方法若改為max時結果如下: 3查詢并統(tǒng)計該字段的數(shù)量 SELECT COL1,COUNT(COL1) FROM MYTEST GROUP BY COL1; 結果為: GROUP BY 哪個字段只能查找哪個字段和該字段的數(shù)量若要同時搜索其它字段就報錯 4從兩個表中查詢并統(tǒng)計數(shù)據(jù) 表T_OVERTIME字段 表T_OVERTIMEPERSONNEL字段 統(tǒng)計每個用戶的加班工日數(shù) 5按多個字段分組并統(tǒng)計 SELECT COL1, COL2, COUNT(*) AS Expr1 COL1 COL2 COUNT 1 A 3 http://post.blog.hexun.com/wolffery/trackback.aspx?articleid=18946781&key=633458003799400000本文章尚未被引用 例表如下: 表名:MYTEST TID COL1 COL2 COL3 1 1 A A 1查找表中的一個字段,重復的只找一個: SELECT DISTINCT COL1 FROM MYTEST; 2查找表中的多個字段,其中某個字段不重復: SELECT * FROM MYTEST WHERE rowid IN (SELECT min(rowid) FROM MYTEST GROUP BY COL1); 結果為: 其中rowid為oracle中的虛擬column用來指向表中一個row的存放地址,改為其它的不能運行(這樣理解不知對不對?哪位朋友有更好的理解請給我留言) min方法若改為max時結果如下: 3查詢并統(tǒng)計該字段的數(shù)量 SELECT COL1,COUNT(COL1) FROM MYTEST GROUP BY COL1; 結果為: GROUP BY 哪個字段只能查找哪個字段和該字段的數(shù)量若要同時搜索其它字段就報錯 4從兩個表中查詢并統(tǒng)計數(shù)據(jù) 表T_OVERTIME字段 表T_OVERTIMEPERSONNEL字段 統(tǒng)計每個用戶的加班工日數(shù) 5按多個字段分組并統(tǒng)計 SELECT COL1, COL2, COUNT(*) AS Expr1 COL1 COL2 COUNT 1 A 3 |
|
|
來自: 厚怡 > 《篩選不重復數(shù)據(jù)》