У меня есть таблица выглядеть примерно так:SQL: Как выбрать отличие от некоторых столбцов
+---+------------+----------+
|ID | SomeNumber | SomeText |
+---+------------+----------+
|1 | 100 | 'hey' |
|2 | 100 | 'yo' |
|3 | 100 | 'yo' | <- Second occurrence
|4 | 200 | 'ey' |
|5 | 200 | 'hello' |
|6 | 200 | 'hello' | <- Second occurrence
|7 | 300 | 'hey' | <- Single
+---+------------+----------+
Я хотел бы, чтобы извлечь строки, где SomeNumber
появляется больше, чем те, и SomeNumbers
и SomeText
различны. Это означает, что я хотел бы:
+---+------------+----------+
|ID | SomeNumber | SomeText |
+---+------------+----------+
|1 | 100 | 'hey' |
|2 | 100 | 'yo' |
|4 | 200 | 'ey' |
|5 | 200 | 'hello' |
+---+------------+----------+
Я не знаю, что делать здесь.
мне нужно что-то вдоль линий:
SELECT t.ID, DISTINCT(t.SomeNumber, t.SomeText) --this is not possible
FROM (
SELECT mt.ID, mt.SomeNumber, mt.SomeText
FROM MyTable mt
GROUP BY mt.SomeNumber, mt.SomeText --can't without mt.ID
HAVING COUNT(*) > 1
)
Любые предложения?
Я удалил несовместимые теги базы данных. Пожалуйста, пометьте базу данных, которую вы действительно используете. –
Почему в вашем результирующем наборе появляется '100 'hey'', это« сингл »? –
Мне нужны все числа, если только они не появляются. Если текст появляется дважды на одном номере, остается только один. –