Ответ 1
Select B, C
From Table
Where B In
(Select B From Table
Group By B
Having Count(*) > 1)
У меня есть база данных доступа к MS, и мне нужно будет создать SQL-запрос, который позволит мне выбрать все нечеткие записи в одном столбце, сохраняя при этом все значения.
В этом случае более чем когда-либо пример стоит тысяч слов:
Таблица:
A B C
1 x q
2 y w
3 y e
4 z r
5 z t
6 z y
SQL magic
Результат:
B C
y w
y e
z r
z t
z y
В основном он удаляет все уникальные значения столбца B, но сохраняет несколько строк данные сохранены. Я могу "группировать по b", а затем "count > 1", чтобы получить нечеткие, но результат будет отображать только одну строку B, а не 2 или более, что мне нужно.
Любая помощь?
Спасибо.
Select B, C
From Table
Where B In
(Select B From Table
Group By B
Having Count(*) > 1)
Другим способом возврата желаемых результатов будет следующее:
select *
from
my_table
where
B in
(select B from my_table group by B having count(*) > 1)
select
*
from
my_table t1,
my_table t2
where
t1.B = t2.B
and
t1.C != t2.C
-- apparently you need to use <> instead of != in Access
-- Thanks, Dave!
Что-то вроде этого?
присоединяйте уникальные значения B, которые вы определили с группой по b, и count > 1 назад к исходной таблице, чтобы получить значения C из таблицы.