У меня есть таблица, подобная следующей:
Id | bool1 | bool2 | bool3 | bool4 | boo5 | bool6
100 | 1 | 0 | 1 | 1 | 1 | 0
300 | 0 | 1 | 0 | 1 | 1 | 1
600 | 0 | 0 | 1 | 0 | 1 | 1
Я хотел бы получить все строки, которые имеют по крайней мере 3 соответствующих (истинных) логических значения с данной строкой:
500 | 1 | 1 | 1 | 1 | 0| 1
Итак, Id 100 и Id 300 должны быть возвращены, но не Id 600. Я попробовал несколько вещей, таких как CROSS JOIN и все типы других объединений и подзапросов. Тем не менее, я не мог понять, как решить этот запрос.
Моя проблема здесь не в 6 логических значениях, а в 25, которые нужно сравнивать.
Любая помощь очень ценится.
Скрипка: http://sqlfiddle.com/#! 9 / 18480e