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

SQL 查询问题。怎么从表里只查询出一组里的一条数据
SQL 查询问题。怎么从表里只查询出一组里的一条数据

假设表T里有以下数据,A,B,C 为字段名

table T

  A | B | C |
-------|-------|-------|---
  1 | 1 | 1 |
  1 | 1 | 2 |
  1 | 2 | 1 |
  1 | 2 | 3 |
  1 | 3 | 4 |

小弟想通过SQL文从中得到以下数据

  A | B | C |
-------|-------|-------|---
  1 | 1 | 1 |
  1 | 2 | 1 |
  1 | 3 | 4 |

如果能选择性的得到一组里的第一或最后一行就更好了

  A | B | C |
-------|-------|-------|---
  1 | 1 | 2 |
  1 | 2 | 3 |
  1 | 3 | 4 |

先谢谢各位高手了

------解决方案--------------------
select *
from
(
select t.*,row_number() over (partition by a,b order by c desc) rn 
from t
)
where rn=1