开发者社区> 问答> 正文

SQL Server:按每一行分组选择

对于SQL Server:

表名称= Phones 列= id,mobileno,状态,userid,createdon 每个用户可以有多个号码,我想为每个用户找到最早的活动电话号码。Status=1活跃。

例如:

user1= id=1, mobileno=123, status=1,userid=1,createdon=2019/12/20
user1= id=2, mobileno=1234, status=1,userid=1,createdon=2019/12/19
user1= id=3, mobileno=12348, status=0,userid=1,createdon=2019/12/17

user2= id=4, mobileno=12345, status=1,userid=2,createdon=2019/12/15
user2= id=5, mobileno=123456, status=1,userid=2,createdon=2019/12/10
结果必须是

```js
user1= id=1, mobileno=1234
user2= id=2, mobileno=123456

(id unique and mobileno =最旧的活动号码)

谢谢。

展开
收起
祖安文状元 2020-01-05 14:12:25 516 0
1 条回答
写回答
取消 提交回答
  • 一个简单而有效的方法是相关子查询:

    select t.*
    from t
    where t.createdon = (select min(t2.createdon)
                         from t t2
                         where t2.userid = t.userid
                        );
    
    2020-01-05 14:12:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载