基于 1 列限制结果
limit results based upon 1 column
我是 SQL 新手,非常感谢任何帮助! id 是程序中人员的 ID,STI 是与他们当前正在进行或已完成的步骤 ID 相关的步骤 ID。我很难弄清楚的是如何将结果限制为仅显示唯一的人员 ID。我根本无法让 DISTINCT 工作。
这是查询:
SELECT
s.[PersonAliasId] AS [id]
, s.[StepTypeId] AS [sti]
FROM
[Step] s
ORDER BY s.[PersonAliasId]
以上查询的结果为:
id sti
11126 19
47331 19
66693 7
68110 19
74838 7
89867 1
89867 2
110105 19
122059 19
122059 21
130273 7
139876 19
150180 19
161929 7
165926 19
169329 19
171922 19
我们正在为每个人跟踪多个步骤。当他们完成一个步骤然后转到另一个步骤时,他们会在此查询中显示两次。例如,人 122059 已经完成了步骤 id 19,目前正在进行步骤 id 21。我真的不关心显示的多个步骤数字,我真的只需要人 ID 到 return 一次。谁能帮我弄清楚我做错了什么?
根据我对你问题的理解。您只关心唯一 ID。所以你可以尝试使用 MAX() 函数来获取每个 id 的最大步长。
select
distinct(s.PersonAliasId) AS id,
max(s.StepTypeId) AS sti
FROM Step s
GROUP BY s.PersonAliasId
ORDER BY s.PersonAliasId
如果我有任何误解,请告诉我
我是 SQL 新手,非常感谢任何帮助! id 是程序中人员的 ID,STI 是与他们当前正在进行或已完成的步骤 ID 相关的步骤 ID。我很难弄清楚的是如何将结果限制为仅显示唯一的人员 ID。我根本无法让 DISTINCT 工作。 这是查询:
SELECT
s.[PersonAliasId] AS [id]
, s.[StepTypeId] AS [sti]
FROM
[Step] s
ORDER BY s.[PersonAliasId]
以上查询的结果为:
id sti
11126 19
47331 19
66693 7
68110 19
74838 7
89867 1
89867 2
110105 19
122059 19
122059 21
130273 7
139876 19
150180 19
161929 7
165926 19
169329 19
171922 19
我们正在为每个人跟踪多个步骤。当他们完成一个步骤然后转到另一个步骤时,他们会在此查询中显示两次。例如,人 122059 已经完成了步骤 id 19,目前正在进行步骤 id 21。我真的不关心显示的多个步骤数字,我真的只需要人 ID 到 return 一次。谁能帮我弄清楚我做错了什么?
根据我对你问题的理解。您只关心唯一 ID。所以你可以尝试使用 MAX() 函数来获取每个 id 的最大步长。
select
distinct(s.PersonAliasId) AS id,
max(s.StepTypeId) AS sti
FROM Step s
GROUP BY s.PersonAliasId
ORDER BY s.PersonAliasId
如果我有任何误解,请告诉我