Sql server SQL Server分组依据仅显示第一个匹配项
我有下表,想分组Sql server SQL Server分组依据仅显示第一个匹配项,sql-server,Sql Server,我有下表,想分组 [name] [phone] doniking 081222222222 doni 081222222222 Bambang Gentholet 081111111111 Bambang 081111111111 我想得到这个结果: [name] [phone] doniking 081222222222 Bambang Genthole
[name] [phone]
doniking 081222222222
doni 081222222222
Bambang Gentholet 081111111111
Bambang 081111111111
我想得到这个结果:
[name] [phone]
doniking 081222222222
Bambang Gentholet 081111111111
试试这个
SELECT [name],[phone]
FROM (
SELECT *,Row_Number() Over (Partition By phone Order By (Select Null)) AS RN
FROM Table1
) AS T
Where RN = 1
OFFSET n ROWS
SELECT name,
phone
FROM (SELECT *,
Row_number()
OVER(
partition BY phone
ORDER BY name) row_num -- or you can have order by (select null)
FROM table1) t
WHERE row_num = 1
您可以用自定义值替换n
试试这个
SELECT MAX(name), phone FROM <TableName> group by phone
逐个电话从通话组中选择MAX(姓名)
编辑:用于偏移
SELECT MAX(name), phone FROM <TableName> group by phone
order by phone offset 10 rows
FETCH NEXT 5 ROWS ONLY;
逐个电话从通话组中选择MAX(姓名)
电话订购偏移量10行
只取下5行;
有关更多详细信息。请尝试此选项
SELECT [name],[phone]
FROM (
SELECT *,Row_Number() Over (Partition By phone Order By (Select Null)) AS RN
FROM Table1
) AS T
Where RN = 1
OFFSET n ROWS
SELECT name,
phone
FROM (SELECT *,
Row_number()
OVER(
partition BY phone
ORDER BY name) row_num -- or you can have order by (select null)
FROM table1) t
WHERE row_num = 1
如果我添加一个列类型日期,如何基于最新日期获取名称?如何将偏移量应用于该查询?检查我的更新答案忘了说我正在使用SQL2005如何将偏移量应用于该查询?应用偏移量是什么意思?你能详细说明你要找的是什么吗?我要把需要限制和偏移的结果分页。不幸的是,我的SQL2005不支持OFFSET关键字。因此,您希望仅对最终结果应用限制和偏移量,还是在筛选出重复项之前应用限制和偏移量?如何将偏移量应用于该查询?