SQL Server GROUP BY仅显示第一个匹配项

时间:2014-03-04 04:16:34

标签: sql-server

我有下表并希望按

进行分组
[name]             [phone]
doniking           081222222222
doni               081222222222
Bambang Gentholet  081111111111
Bambang            081111111111

我想得到这个结果:

[name]             [phone]
doniking           081222222222
Bambang Gentholet  081111111111

3 个答案:

答案 0 :(得分:2)

试试这个

SELECT MAX(name), phone  FROM <TableName> group by phone

编辑:对于偏移

SELECT MAX(name), phone  FROM <TableName> group by phone
order by phone offset 10 rows 
FETCH NEXT 5 ROWS ONLY;

Check this了解更多详情。

答案 1 :(得分:2)

试试这个

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 

答案 2 :(得分:1)

试试这个

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

您可以将n替换为自定义值...

Row_Number