【发布时间】:2019-01-22 11:11:09
【问题描述】:
如何在选定列中按条件应用分组 我只想在“userdata”表的名称字段上应用分组条件。
SELECT CAST(UserId AS varchar(255)) AS UserId,
CAST(name AS varchar(255)) AS name,
CAST(city AS varchar(255))
FROM "userdata"
WHERE name = 'Jhohn'
GROUP BY CAST(UserId AS varchar(255)),
CAST(name AS varchar(255)),
CAST(city AS varchar(255));
上面的结果是
userId name city
1 jhon florida
2 sam new york
3 sam wales
4 thomas new york
预期结果:
userId name city
1 jhon florida
2 sam new york
4 thomas new york
【问题讨论】:
-
这应该如何工作?您期望“sam”的用户ID 值是多少?有 2 和 3。同样适用于 city 字段。
-
sql server 可能重复从组中选择第一行? – Larnu 在给定的链接中,除了要分组的字段之外的字段需要聚合。
-
我想跳过第一个表的第三行
-
@Ocean 你可以在下面看到我的回答。这里 Min() 函数用于只保留跳过第 3 行并保留第 1 行。如果要保留第三行并删除第一行,可以使用 Max() 函数。
标签: sql-server