我目前正在處理一份調查資料串列:
| 用戶身份 | 用戶名 | 調查ID | 問題ID | 回應 ID | 已跳過 |
|---|---|---|---|---|---|
| 1 | 測驗1 | 100 | 10 | 1 | 0 |
| 1 | 測驗1 | 100 | 20 | 2 | 0 |
| 2 | 測驗2 | 101 | 10 | 3 | 0 |
| 2 | 測驗2 | 101 | 20 | 4 | 1 |
| 3 | 測驗3 | 102 | 10 | 5 | 1 |
| 3 | 測驗3 | 102 | 20 | 6 | 1 |
我正在尋找一個查詢來給我用戶、SurveyID 和一個標志(0 = 完成/1 = 未完成),告訴我他們是否完成了所有問題(所有 isSkipped 值都是 0)......所以結局應該是……
| 用戶身份 | 用戶名 | 調查ID | 完全的 |
|---|---|---|---|
| 1 | 測驗1 | 100 | 0 |
| 2 | 測驗2 | 101 | 1 |
| 3 | 測驗3 | 102 | 1 |
誰能幫我嗎?我試過使用GROUP BY和SUM/COUNT等等,但我總是得到每個用戶不止一行。我敢肯定這是我想念的簡單的東西。
uj5u.com熱心網友回復:
據推測,對于您所需的結果,您需要:
select UserId, User_Name, SurveyId,
case when sum(isSkipped) > 0 then 1 else 0 end as Complete
from t
group by UserId, User_Name, SurveyId;
uj5u.com熱心網友回復:
既然他們完成了一個被認為是完整的問題就足夠了,那么您可以選擇max(isSkipped)您的complete狀態。
select UserID
,[User Name]
,SurveyID
,max(isSkipped) as Complete
from t
group by UserID, [User Name], SurveyID
| 用戶身份 | 用戶名 | 調查ID | 完全的 |
|---|---|---|---|
| 1 | 測驗1 | 100 | 0 |
| 2 | 測驗2 | 101 | 1 |
| 3 | 測驗3 | 102 | 1 |
小提琴
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/510527.html
標籤:sqlsql服务器
