假设我有一个名为tableA的表,其数据为
| col1 | col2 |
| 1 | 5 |
| 1 | 6 |
| 1 | 7 |
| 2 | 1 |
| 2 | 2 |
| 2 | 3 |
| 2 | 4 |
| 3 | 3 |
| 3 | 2 |
| 3 | 1 |
然后我想得到的是col1的每个唯一值的最后两次出现。结果将是
| col1 | col2 |
| 1 | 6 |
| 1 | 7 |
| 2 | 3 |
| 2 | 4 |
| 3 | 2 |
| 3 | 1 |
是否有一个查询可以获得此结果?
答案 0 :(得分:1)
您可以使用ROW_NUMBER
WITH CTE AS(
SELECT *, rn = ROW_NUMBER() OVER(PARTITION BY col1 ORDER BY col2 DESC)
FROM tbl
)
SELECT
col1, col2
FROM CTE
WHERE rn <= 2
答案 1 :(得分:1)
只需扩展Felix的答案,假设有一个ID列:http://www.sqlfiddle.com/#!3/04a5e/3/0
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
yourTableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Top , animated: true)
}
需要按ID重新排序以保持正确的顺序,再加上在row_number()中按ID排序,因为col2并不总是增量。