, пожалуйста, простите меня, если мой жаргон выключен. Я все еще учусь!поиск повторяющихся строк с разными идентификаторами на основе нескольких столбцов
Я только начал использовать Teradata, и, честно говоря, было очень весело. однако я попал в дорожный блок, который натолкнул меня на некоторое время.
Я успешно выбрал таблицу из базы данных, которая выглядит как:
ID service date name
1 service1 1/5/15 john
2 service2 1/7/15 steve
3 service3 1/8/15 lola
4 service4 1/3/15 joan
5 service5 1/5/15 fred
6 service3 1/3/15 joan
7 service5 1/8/15 oscar
Теперь я хочу, чтобы найти базу данных еще раз, чтобы найти повторяющиеся идентификаторы (например, чтобы увидеть, если сервис service1 с датой 1/5/15 с именем john существует в другом ряду с другим идентификатором.)
Сначала я сделал что-то вроде этого:
SELECT ID, service, date, name
FROM table
WHERE table.service = ANY(service1, service2, service3, service4, service5, service3, service5)
AND table.date = ANY('1/5/15', '1/7/15, '1/8/15', '1/3/15', '1/5/15', '1/3/15', '1/8/15')
AND table.name = ANY('john', 'steve', 'lola', 'joan', 'fred', 'joan', 'oscar');
Но это дает мне больше строк, чем я хотел.
пример:
ID service date name
92 service3 1/8/15 steve
не имеет смысла для меня, так как я ищу идентификаторы, которые имеют ту же самую комбинацию услуг, дату и название, как любой из других идентификаторов в таблице выше.
что-то подобное было бы выгодно:
ID service date name
609 service3 1/8/15 lola
, поскольку она совпадает с чем ID 3.
мне было интересно посмотреть, если бы можно было рассматривать три колонки (службы, дата, имя) как вектор и, возможно, выбрать строки, которые соответствуют ему таким образом?
экс
......
WHERE (table.service, table.date, table.name) = ANY((service3,1/8/15,lola), (service1, 1/5/15, john), ...etc)
Мой Teradata вниз прямо сейчас, поэтому я до сих пор не попробовать в приведенном выше примере. Тем не менее, любые мысли/отзывы очень приветствуются!
Откуда стоит идентификатор '609' в вашем ожидаемом выходе? –
Приведенная выше таблица не является моей фактической таблицей; это было сделано так, чтобы я не выдавал никакой конфиденциальной информации. Но в любом случае эти дубликаты, которые я ищу, представляют собой небольшое подмножество очень большого количества строк; Я не знаю, сколько строк, я просто знаю, что я не мог загрузить их. – Sam
Я дал вам ответ ниже, попробуй, и если он не сработает, оставьте комментарий. –