が、私はテーブルアドレスを持っているキーワードのOracle順序またはランクは当社のOracle 12cのデータベースで
スキーマ:行の
Integer personId as PK
String source (what the source data from)
String address1
String address2
String post code
etc...
例:
p1, news paper(Primary), add1, add2, ....
p1, google (Primary), add1, add2, ....
p1, phone (Secondary), add1, add2, ....
p2 new paper (Primary), add1, add2......
p3 phone (Secondary), add1, add2.....
問題: 一人一人に一意のアドレスが必要です。ほとんどの人は1つだけのアドレスを持っているだろうが、1人は2以上のアドレス
現在のソリューションで終わるという例もあるが:
select * from (
select person_id, source,row_number() over(partition by person_id order by source) rn from address
)a
where a.rn = 1
は、ソースのアルファベット順によるクエリの順序、重複、
しかし、ソースが(プライマリ)を含むソースが他のソースよりも優先されるため、アルファベット順で簡単に注文することはできません。また、各個人はプライマリアドレスが1つしかないことが保証されていません2つのセカンダリアドレスまたは2つのプライマリアドレスを持つことができますが、ほとんどの場合、プライマリアドレスセカンダリ
ビジネスルールを作成し、有効性をテストする必要があります。いくつかの外部データセットに対する検証なしに、いくつかの決定的なビジネスルールに到達するのに十分な情報を持っているかのようには見えません。出典:私はこれを行うシステムを構築する。 – Ben
@benあなたはブリストルに拠点を置いていますか? –
いいえ、私はそうではありません.... – Ben