У меня есть таблица со значениями вроде:
|---------------------|------------------|
| USER | ITEM |
|---------------------|------------------|
| Abel | 1 |
|---------------------|------------------|
| Abel | 2 |
|---------------------|------------------|
| Bart | 1 |
|---------------------|------------------|
| Bart | 2 |
|---------------------|------------------|
| Curt | 3 |
|---------------------|------------------|
| Curt | 4 |
|---------------------|------------------|
| Dawn | 5 |
|---------------------|------------------|
| Emma | 5 |
|---------------------|------------------|
| Emma | 6 |
|---------------------|------------------|
| Emma | 7 |
|---------------------|------------------|
| Fina | 6 |
|---------------------|------------------|
Из этой таблицы я хочу выбрать только те, которые не следуют:
ПОЛЬЗОВАТЕЛИ могут иметь толькоодин элемент.
ПОЛЬЗОВАТЕЛИ могут иметь более одного ПУНКТА, только если они имеют его вместе с другим ПОЛЬЗОВАТЕЛЕМ.
Группа ПОЛЬЗОВАТЕЛЕЙ можетимеют только один общий элемент.
После этого:
- Фина имеет только 1 пункт , она ОК и она не должна быть включена.
- Эмма имеет 3 ЭЛЕМЕНТА , но два из них используются разными ПОЛЬЗОВАТЕЛЯМИ, поэтому она ОК и ее не следует включать.
- Рассвет имеет только 1 ПУНКТ , у нее ОК , и ее не следует включать.
- У Курта есть** 2 ПУНКТА , он НЕ ОК , и он должен быть включен
- Барт и Авель имеют 2 общих элемента,они НЕ ОК и должны быть включены.
Возможно ли это с SQL или мне нужно сделать скрипт на другом языке?
По крайней мереМне нужно знать количество пользователей, которые НЕ в порядке
В лучшем случае, таблица со списком элементов , которые неправильны