SQL перечисляет все строки, где столбец A появляется более одного раза, но имеет разные значения столбца B
У меня есть два столбца, например, я хочу перечислить все строки, в которых элементы в строке A появляются более одного раза в столбце A, но имеют различные значения в столбце B. До сих пор я не нашел ответ
Column A Column B
Apple x
Banana a
Orange b
Orange b
Banana x
Avocado d
2 ответа
Решение
Попробуйте этот запрос:
SELECT ColumnA
FROM table t
GROUP BY ColumnA
HAVING COUNT(DISTINCT ColumnB) >= 2;
Альтернатива HAVING
пункт, который может быть более эффективным:
HAVING MIN(ColumnB) <> MAX(ColumnB)
Попробуйте этот запрос:
SELECT ColumnA
FROM mytable
GROUP BY ColumnA
HAVING COUNT(*) > 1 AND COUNT(DISTINCT ColumnB) = COUNT(*)
- Первый предикат в
HAVING
условие верно, еслиColumnA
значение появляется более одного раза. - Второй предикат верен, если все значения в
ColumnB
различны в пределахColumnA
группа.