2011-12-12 55 views
0

我正在寻找一个查询检索行当B <> 1为每个不同A.最高seq_identity扣除根据TOP 1查询的结果一组结果

A B seq_identity 
---------------- 
u 0 8 

v 1 9 

w 0 10 
w 1 11 

x 1 12 
x 0 13 
x 1 14 

y 0 15 
y 1 16 
y 0 17 

z 1 18 
z 0 19 

在真正的表A值没有排序; seq_identity是独一无二的。

从上面的查询结果是所有的 'U', 'Y' 和 'Z' 行: 即

u 0 8 
y 0 15 
y 1 16 
y 0 17 
z 1 18 
z 0 19 
+0

你能澄清输出?为什么没有'y'行的结果? – Andomar

+0

'y'行在结果中 - “所有'u',**'y'**和'z'行” – Zaphod

回答

2
SELECT A, MAX(seq_identity) 
    FROM YourTable 
    WHERE B <> 1 
    GROUP BY A; 
+0

我认为我的解释不清楚 - 我添加了确切的预期结果集。 – Zaphod

+0

@Zaphod我现在很困惑。为什么不包含'w 0 10'? –

+0

对不起。很难解释它。如果每组A的最高seq_identity的B = 1,则从结果中排除该组。 'w'行集合的最高seq_identity是11,那行有B = 1,因此排除结果中的所有'w'行。 – Zaphod

0
SELECT DISTINCT A, B, MAX(seq_identity) 
FROM table_name 
WHERE B <> 1 
GROUP BY A