Вот один из вариантов, который использует наименьший / наибольший трюк для получения требуемой отчетности:
SELECT
Student,
LEAST(fruit1, fruit2) AS fruit1,
GREATEST(fruit1, fruit2) AS fruit2,
COUNT(*) AS cnt,
CASE WHEN LEAST(fruit1) <> GREATEST(fruit1)
THEN 'True' ELSE 'False' END AS "Repeated Condition"
FROM yourTable
GROUP BY
Student,
LEAST(fruit1, fruit2),
GREATEST(fruit1, fruit2)
Идея состоит в том, чтобы агрегировать по учащемуся вместе с меньшими / большими значениями любой пары два плода. Это приводит (Apple, Banana)
в соответствие с (Banana, Apple)
. Затем мы сообщаем True
о повторяющемся условии, если в данной группе учащихся / фруктов мы можем обнаружить, что порядок фруктов никогда не был одинаковым везде. В противном случае мы сообщаем False
.