我主要是新的SQL,所以我不知道了很多關於它提供的所有高級選項。我目前正在使用MS SQL Server 2016(開發版)。SQL:刪除重複的基礎上性判據
我有以下結果:
| Type | Role | GUID |
|--------|--------|--------------------------------------|
| B | 0 | ABC |
| B | 0 | KLM |
| A | 0 | CDE |
| A | 0 | EFG |
| A | 1 | CDE |
| B | 1 | ABC |
| B | 1 | GHI |
| B | 1 | IJK |
| B | 1 | KLM |
選擇以下選項:
SELECT DISTINCT
Type,
Role,
GUID
我期待算GUID以下約束:
- >如果有多個行具有相同的GUID,只能用一個「角色」設置爲0
計數用「角色」的行設定爲「1」,否則,計算所述一個 - 如果第>根據他們自己的角色價值,它只是一個,將它算作「角色0」或「角色1」。
我的目標是得到以下結果:
| Type | Role | COUNT(GUID) |
|--------|--------|--------------------------------------|
| A | 0 | 1 | => counted EFG as there was no other row with a "Role" set to 1
| A | 1 | 1 | => counted CDE with "Role" set to 1, but the row with "Role" set to 0 is ignored
| B | 1 | 4 |
1.你跟工作有什麼版本的SQL Server? 2.到目前爲止您嘗試過什麼? 3.如果有多行具有相同的「guid」,但沒有一個角色設置爲1,您應該怎麼做? –
1.我使用SQL服務器2016 2.我試圖使用用「不同的」 3.我已經使用在第一次請求「不同的」(「SELECT DISTINCT類型,角色,GUID」),從而這種情況下不應該發生。 – Dremor