0

我的表结构

recordId         mobileNumber         month            year          yearmonth
101               9900000000          4                2013           20134
102               9900000000          3                2013           20133
103               9900000000          1                2013           20131
104               9999999999          3                2013           20133
105               9999999999          2                2013           20132
106               9999999999          1                2013           20131

假设当前月份是 4,年份是 2013。

我需要从该表中获取所有数字及其最后一个条目。我试过这个查询

select * from tablename where yearmonth=(select max(yearmonth) from tablename)

但问题是上个月没有出现某些数字,例如数字 999999999 在第 4 个月没有值,因此它不会检索所有数字。

我怎样才能得到所有数字的最后一条记录。

4

2 回答 2

3
SELECT  *
FROM    (
        SELECT  *,
                ROW_NUMBER() OVER (PARTITION BY mobileNumber ORDER BY year DESC, month DESC, recordId DESC) rn
        FROM    mytable
        ) q
WHERE   rn = 1
于 2013-05-21T10:11:10.620 回答
0
select mobileNumber, max(yearmonth)
from tablename
group by mobileNumber
于 2013-05-21T10:11:18.637 回答