日期:2014-05-17  浏览次数:20722 次

又有个难的sql 不会 在线等 急
col1 col2 col3 col4 col5 col6 col7 col8

1 100280 1 EL 25729 IN 1/1/2010 2 3
2 100280 1 EL 25729 IN 1/1/2010 2 4
3 100380 1 EL 22613 OUT 1/4/2010 2 2
4 100380 1 EL 733 IN 1/5/2010 2 2
5 100489 1 EL 28606 OUT 1/6/2010 2 1
6 100489 1 EL 20843 IN 1/7/2010 1 1

现在的要求是:根据col5 col6 col7 col8 排序  
  然后把排序得出来的结果根据 col5 col6 col7 来把col2 col3 相等的抽出来

讲到这,我知道你没明白我的意思。再进一步解释:在第1条数据的col5 col6 col7 与第2条数据的col5 col6 col7 一样的
基础上再去判断第一条的col2 与第二条的col2 ,第一条的col3与第二条的col3 是否相等,如果相等 取出来

------解决方案--------------------
探讨

对 可以写个我看看吗?

------解决方案--------------------
其实你用个分析函数就可以了,格式如下
select a.col1, a.col2, a.col3,a.col4,
a.col5,a.col6,a.col7, a.col8, a.col9
from (select t.col1,t.col2,t.col3,t.col4,
t.col5,t.col6,t.col7,t.col8,t.col9,
count(*) over(partition by col2, col3, col6, col7, col8 ) g_num
from t_first t) a
 where a.g_num > 1
 order by a.col6, a.col7, a.col8;