Betrachten Sie die folgende Tabelle. Jedes Dokument (id
) gehört zu einer Gruppe (group_id
).Überprüfen Sie, ob alle Datensätze in der gleichen Gruppe akzeptierte Typen sind
-----------------------
id group_id value
-----------------------
1 1 A
2 1 B
3 1 D
4 2 A
5 2 B
6 3 C
7 4 A
8 4 B
9 4 B
10 4 B
11 4 C
12 5 A
13 5 A
14 5 A
15 6 B
16 6 NULL
17 6 NULL
18 6 D
19 7 NULL
20 8 B
1/Jedes Dokument hat einen Wert NULL
, A
, B
, C
oder D
2/Wenn die Dokumente in der gleichen Gruppe alle entweder A
oder B
als Wert haben, wird die Gruppe
3/In diesem Fall würde die gewünschte Ausgabe lesen:
---------------------
group_id completed
---------------------
1 0 <== because document 3 = D
2 1 <== all documents have either A or B as a value
3 0 <== only one document in the group, value C
4 1 <== all documents have either A or B as a value
5 1 <== all documents have value A
6 0 <== because of NULL values and value D
7 0 <== NULL
8 1 <== only one document, value B
Ist es möglich, diese Ergebnismenge abzufragen?
Da ich in SQL nicht sehr erfahren bin, würde jede Hilfe geschätzt werden!
nicht MIN (CASE WHEN [Wert] IN ('A', 'B') THEN 1 ELSE 0 END) gleich und billiger sein? – Turo
@Turo - Beide sind nicht gleich –
in welchem Fall unterscheiden sie sich? – Turo