Monika
O.
Specjalista wsparcia
IT
Temat: wyszukanie duplikatów
cześćmuszę z dużej ilości danych wyłuskać wartości powtarzające się (adresy) i zrobić oczywiście ich analizę:-)
sytuacja jest taka, że klient może mieć różne adresy zameldowania i korespondencyjne lub takie same (wtedy koresp. to wartość pusta)
muszę ograniczyć te dane tak, że zdublowane wartości mieszczą się między 3 a 10 wystąpień
i nie wiem czy ten select zrzuci mi dokładnie to o co mi chodzi,
czy potrzebne jest to count i having count, i czy przy group by kolejność ma znaczenie?
robię sobie takiego selecta
SELECT
cd2f.since_dte,
car.wh_acc_no,
start_dte as data_rachunku, -- klient może mieć kilka rachunków z różnymi datami założenia
/*Adres zameldowania*/
adrm.ZIP_CDE,
adrm.CITY_NAME,
adrm.STREET_NAME,
adrm.STREET_NO,
adrm.CNTY_NAME, adrm.ISO_CNTRY_CDE,
/*Adres korespondencyjny*/
adrk.ZIP_CDE,
adrk.CITY_NAME,
adrk.STREET_NAME,
adrk.STREET_NO,
adrk.CNTY_NAME,
count(*) as liczba
FROM customer_detail2_full cd2f
join customer_account_rel car on car.WH_CUST_NO = cd2f.WH_CUST_NO
/*Adres zameldowania ADDR_CDE = -1*/
LEFT JOIN ADDRESSES adrm ON adrm.WH_CUST_NO = cd2f.WH_CUST_NO AND adrm.ADDR_CDE = -1 AND adrm.SUBSIDIARY_ID = 1
/*Adres korespondencyjny ADDR_CDE = 2*/
LEFT JOIN ADDRESSES adrk ON adrk.WH_CUST_NO = cd2f.WH_CUST_NO AND adrk.ADDR_CDE = 2 AND adrk.SUBSIDIARY_ID = 1
WHERE
cd2f.since_dte >'2010-01-01'
group by
cd2f.since_dte,
data_rachunku,
car.wh_acc_no,
adrm.ZIP_CDE,
adrm.CITY_NAME,
adrm.STREET_NAME,
adrm.STREET_NO,
adrm.CNTY_NAME,
adrm.ISO_CNTRY_CDE,
adrk.ZIP_CDE,
adrk.CITY_NAME,
adrk.STREET_NAME,
adrk.STREET_NO,
adrk.CNTY_NAME
--having count(*) between 3 and 10
order by data_rachunku