0
SELECT nl.legal_name, nl.city, c.description 'Country', it.lei, sec.sym
FROM name_loc             nl
INNER JOIN ident_tbl_tmp  it ON nl.fk_ident_id = it.id 
INNER JOIN sym_exch_cnty sec ON it.fk_sec_id   = sec.id
INNER JOIN countries       c ON nl.fk_cnty_id  = c.id
WHERE legal_name REGEXP '^For'
limit 100;

上記のクエリを使用すると、500 行以上のデータが返されます。部分的な出力は次のとおりです。

出力:

+------------------------------------------+--------------+----------------+----------------------+--------------+
| legal_name                               | city         | Country        | lei                  | sym          |
+------------------------------------------+--------------+----------------+----------------------+--------------+
| FOREFRONT GROUP LTD HKD0.01(SUB          | PENDING      | HONG KONG      | NA                   | 2903.HK      |
| FOREFRONT HOLDINGS                       | PENDING      | UNITED STATES  | NA                   | FFHN         |
| FOREIGN & COL INV TR                     | PENDING      | UNITED STATES  | NA                   | FLIVF        |
| Foreign & Colonial Investment Trust      | PENDING      | NEW ZEALAND    | NA                   | FCT.NZ       |
| Foreign & Colonial Investment Trust      | PENDING      | UNITED KINGDOM | NA                   | FRCL.L       |
| Foreign & Colonial Investment Trust PLC  | London       | UNITED KINGDOM | 8VHDVYVI7W11JH2PAC61 | NA           |
| Foreland                                 | PENDING      | SINGAPORE      | NA                   | E1:B0I.SI    |
| Foreland                                 | PENDING      | SINGAPORE      | NA                   | E2:B0I.SI    |

最初の「n」文字が一致し、国が同じ場合に結果を返すクエリが必要です。

これは、最初の 7 文字のマッチングの正しい結果です。

+------------------------------------------+--------------+----------------+----------------------+--------------+
| legal_name                               | city         | Country        | lei                  | sym          |
+------------------------------------------+--------------+----------------+----------------------+--------------+
| Foreign & Colonial Investment Trust      | PENDING      | UNITED KINGDOM | NA                   | FRCL.L       |
| Foreign & Colonial Investment Trust PLC  | London       | UNITED KINGDOM | 8VHDVYVI7W11JH2PAC61 | NA           |
| Foreland                                 | PENDING      | SINGAPORE      | NA                   | E1:B0I.SI    |
| Foreland                                 | PENDING      | SINGAPORE      | NA                   | E2:B0I.SI    |

これは、最初の 14 文字のマッチングの正しい結果です。

+------------------------------------------+--------------+----------------+----------------------+--------------+
| legal_name                               | city         | Country        | lei                  | sym          |
+------------------------------------------+--------------+----------------+----------------------+--------------+
| Foreign & Colonial Investment Trust      | PENDING      | UNITED KINGDOM | NA                   | FRCL.L       |
| Foreign & Colonial Investment Trust PLC  | London       | UNITED KINGDOM | 8VHDVYVI7W11JH2PAC61 | NA           |

さまざまなサブクエリを試しましたが、うまくいきません。関数または手順が必要かもしれないと思いますが、よくわかりません。

4

1 に答える 1

1

あなたは単にすることができますGROUP BY Country, LEFT(legal_name, 7)。これにより、国と名前のプレフィックスのすべての組み合わせに対して1行の出力のみが取得されるようになります。どの行になるかには影響しません。COUNT(*) AS number_of_duplicates元の行の数を追跡したい場合は、列を追加することもできます。

于 2013-01-14T06:33:17.960 に答える