如果我的行話已關閉,請原諒我。我還在學習!根據多列查找具有不同ID的重複行
我剛開始使用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
現在我想再次搜索數據庫找到任何重複的ID(例如:看是否服務service1的日期爲1/5/15,名稱爲john,存在於具有不同ID的另一行上。)
起初,我做了這樣的事情:
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的相同的組合標識。
像這樣將有利於:
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'的ID值? –
上表不是我的實際表格;它看起來像它,所以我沒有泄露任何機密信息。但無論哪種方式,我正在尋找的這些重複項是很大數量行的一小部分;我不知道有多少行,我只知道我無法加載它們 – Sam
我在下面給了你一個答案,試試看,如果它不起作用,請發表評論。 –