簡體   English   中英

SQL查詢以比較計數> 1的記錄

[英]SQL Query to compare records having count > 1

我在子查詢中有一個名為Temp的臨時表。 在此表中,我有user_id,created_on和answer列。 答案欄僅包含是或否。

我想要:

查找用戶對於不同的created_on日期是否有不同的答案,如果是這種情況,則比較所有這些答案以查找用戶是否曾經回答“是”

我的桌子看起來像:

| user_id | created_on | answer |

|       1 | 12/7/2016  | no     |

|       1 | 12/6/2016  | no     |

|       1 | 12/5/2016  | yes    |

|       2 | 11/30/2016 | no     |

|       2 | 11/29/2016 | no     |

|       3 | 10/1/2016  | yes    |

|       4 | 9/2/2016   | no     |

輸出應如下所示:

| user_id | final_answer |

|    1    |     yes      |

|    2    |     no       |

|    3    |     yes      |

|    4    |     no       |

我可以想到通過自我聯接來解決此問題,但是在某些情況下,user_id計數為10。對於僅具有單個user_id條目的情況,輸出應僅從答案列返回該單個記錄。 如何使用SQL查詢解決此問題?

嘗試這個。 根據他們回答是或否,分配1或0。 取總和。 如果其大於0,則意味着他們必須在某個時候回答是。

SELECT 
  user_id,
  CASE 
    WHEN(SUM(CASE WHEN answer = 'yes' THEN 1 ELSE 0 END)) > 0 THEN 'yes' 
    ELSE 'no' 
  END AS final_answer
FROM
  YourTempTable
GROUP BY user_id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM