我是 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 已經完成了第 19 步,目前正在第 21 步。我并不關心顯示的多個步數,我真的只需要回傳一次。誰能幫我弄清楚我做錯了什么?
uj5u.com熱心網友回復:
根據我對你的問題的理解。您只關心唯一 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
db小提琴鏈接
如果我誤解了什么,請告訴我
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/474576.html
標籤:tsql
