选择SQL组
发布时间:2020-12-12 08:37:26 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用SQL Server,并且我有一个表与以下列: SessionId | Date | first name | last name 我想通过sessionId进行分组,然后获取具有最大日期的行. 例如: xxx | 21/12/2012 | f1 | l1xxx | 20/12/2012 | f2 | l2yyy | 21/12/2012 | f3 | l3yyy | 20/12/201
我正在使用SQL Server,并且我有一个表与以下列:
SessionId | Date | first name | last name 我想通过sessionId进行分组,然后获取具有最大日期的行. 例如: xxx | 21/12/2012 | f1 | l1 xxx | 20/12/2012 | f2 | l2 yyy | 21/12/2012 | f3 | l3 yyy | 20/12/2012 | f4 | l4 我想得到以下行: xxx | 21/12/2012 | f1 | l1 yyy | 21/12/2012 | f3 | l3 谢谢 解决方法尝试这个:WITH MAXSessions AS ( SELECT *,ROW_NUMBER() OVER(PARTITION BY SessionID ORDER BY Date DESC) rownum FROM Sessions ) SELECT SessionId,Date,firstname,lastname FROM MAXSessions WHERE rownum = 1; 要么: SELECT s.SessionId,s.Date,s.firstname,s.lastname FROM Sessions s INNER JOIN ( SELECT SessionID,MAX(Date) LatestDate FROM sessions GROUP BY SessionID ) MAxs ON maxs.SessionID = s.SessionID AND maxs.LatestDate = s.Date; 更新:要获得会议次数,可以这样做: SELECT s.SessionId,s.lastname,maxs.SessionsCount FROM Sessions s INNER JOIN ( SELECT SessionID,COUNT(SessionID),SessionsCount,MAX(Date) LatestDate FROM sessions GROUP BY SessionID ) MAxs ON maxs.SessionID = s.SessionID AND maxs.LatestDate = s.Date; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Sqlserver远程/网络事务的支持(在触发器中调用远程服务器)
- sql-server – 如何在SQL Server查询中使用group by?
- sql-server-2008 – 使用SQL Server 2008和Office 2007的适
- sql-server – DB2 vs PostgreSQL vs SQL Server [已关闭]
- SqlServer转换为Mysql的一款工具推荐(mss2sql)
- sql-server – 请求的操作需要OLE DB会话对象… – 通过ADO
- 使用数据库,C#windows窗体应用程序存储和检索颜色
- SQL Server连接中三个常见的错误分析(转)
- SQL Server数据库字典SQL语句
- sql – 在Oracle中,您可以创建一个仅在数据库运行时存在的表