|
Задачка на множества (вроде)
|
|||
---|---|---|---|
#18+
Здравствуйте! Есть задачка: Требуется для каждого ребёнка найти все возможные подарки, которые сделают его семью счастливой: в подарке будут все любимые конфеты ребёнка, а также конфеты, которые он не любит –– они достанутся маме, и она будет счастлива, а если счастлива мама, то папа тоже доволен. Файл прикрепил с данными. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 18:17 |
|
Задачка на множества (вроде)
|
|||
---|---|---|---|
#18+
Ответ, который должен получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 18:18 |
|
Задачка на множества (вроде)
|
|||
---|---|---|---|
#18+
Чтобы получить нужный ответ, то я должен каким-то образом сгруппировать выделенные строки. Пытался через Код: sql 1.
- не получалось. Просто выдавало пересечение, которое и так было во втором запросе (ниже INTERSECT). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 18:20 |
|
Задачка на множества (вроде)
|
|||
---|---|---|---|
#18+
sysn1k, Перефразируя, выберите из всех наборов те, которые содержат все конфеты из списка ребёнка, причем в наборе должна содержаться минимум одна конфета не из его списка. То есть конфеты набора должна удовлетворять двум условиям: exist (все конфеты из списка ребенка) and not exists (конфеты в списке ребёнка). Надо понять - а как определить, что все конфеты были проверены из пожеланий ребёнка? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 00:01 |
|
Задачка на множества (вроде)
|
|||
---|---|---|---|
#18+
Владислав Колосов, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
На скрине выделил какие данные нужно вытащить. Выделенные данные - это подарки, которые полностью совпадают с любимыми конфетами ребенка 'А' или id = 1 (Подарок W, W3). А вот подарки W2 и W4 не подходят - они содержат только часть любимых конфет. Сбоку на скрине я указал какой ребенок какие конфеты любит. Я не знаю как SQL указать, чтобы он вытащил только полное совпадение из CTE b (W, W3), а не с полным + частичным совпадением(что у меня в итоге и получилось). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 09:28 |
|
Задачка на множества (вроде)
|
|||
---|---|---|---|
#18+
Это результат из CTE b ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 09:34 |
|
Задачка на множества (вроде)
|
|||
---|---|---|---|
#18+
Этож очень простенькая задачка для ясельников Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 10:27 |
|
Задачка на множества (вроде)
|
|||
---|---|---|---|
#18+
aleks222, я забил болт на пересечения. Решил, но скорее всего, костыльным способом. в CTE 'b' я посчитал количество любимых конфет для каждого ребенка. 'c' и 'd' - это промежуточные CTE. В конце я уже сравнивал количество любимых конфет с количеством нахождения любимых конфет в подарке. Например: У ребенка 'A' - 3 любимых конфет. Из 4 подарков встречается только 2 подарка, где все 3 любимых конфет находится, если даже конфет в подарке находится больше (поэтому >=). Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 11:27 |
|
Задачка на множества (вроде)
|
|||
---|---|---|---|
#18+
sysn1k aleks222, я забил болт на пересечения. Решил, но скорее всего, костыльным способом. в CTE 'b' я посчитал количество любимых конфет для каждого ребенка. 'c' и 'd' - это промежуточные CTE. В конце я уже сравнивал количество любимых конфет с количеством нахождения любимых конфет в подарке. Например: У ребенка 'A' - 3 любимых конфет. Из 4 подарков встречается только 2 подарка, где все 3 любимых конфет находится, если даже конфет в подарке находится больше (поэтому >=). Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
Бред. Да еще и напрягающий сервер. ЗЫ. Можно и без except. Но уж точно, группировки не нужно. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 11:57 |
|
|
start [/forum/topic.php?fid=46&msg=40086933&tid=1684460]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
117ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 252ms |
total: | 448ms |
0 / 0 |