0

米国での販売代理店の MySQL テーブルがあります。州を含む各場所の郵送先住所が含まれています。パシフィック、マウンテン、ウェスト ノース セントラル、イースト ノース セントラル、ミドル アトランティック、ニュー イングランド、ウェスト サウス セントラル、イースト サウス セントラル、サウス アトランティック、AK & HI は AK_HI として。

レポートは次のようになります。

Region        State Average_Sales_by_state number_of_distributors
------        ----- ---------------------- ----------------------
Pacific       WA    $1234                  10
              OR    $4321                  20
              CA    $9876                  40
New England   ME    $1212                  15
              MA    $2222                  12
...

レポートを生成するためにクエリを実行するときに、レポートがエレガントな方法でまとめられるようにするには、MySQL でこれにどのようにアプローチすればよいでしょうか? また、Average_Sales_by_state 列で降順に並べ替える必要があります (上記の例では実行しませんでした)。

US_Regions という名前の新しい MySQL テーブルを作成する必要があると考えています。このテーブルには、地域と州を含むレコード レイアウトがあり、州ごとに行が存在します。その方法をとった場合、上記のようなレポートを生成するためのクエリはどのようになりますか? ありがとう!

MySQL の US_Regions テーブルは次のとおりです。

+----+--------------------+-------+
| id | Region             | State |
+----+--------------------+-------+
|  1 | Pacific            | WA    |
|  2 | Pacific            | OR    |
|  3 | Pacific            | CA    |
|  4 | Mountain           | MT    |
|  5 | Mountain           | ID    |
|  6 | Mountain           | WY    |
|  7 | Mountain           | NV    |
|  8 | Mountain           | UT    |
|  9 | Mountain           | CO    |
| 10 | Mountain           | AZ    |
| 11 | Mountain           | NM    |
| 12 | West North Central | ND    |
| 13 | West North Central | MN    |
| 14 | West North Central | SD    |
| 15 | West North Central | NE    |
| 16 | West North Central | IA    |
| 17 | West North Central | KS    |
| 18 | West North Central | MO    |
| 19 | East North Central | WI    |
| 20 | East North Central | IL    |
| 21 | East North Central | MI    |
| 22 | East North Central | IN    |
| 23 | East North Central | OH    |
| 24 | Middle Atlantic    | PA    |
| 25 | Middle Atlantic    | NY    |
| 26 | Middle Atlantic    | CT    |
| 27 | Middle Atlantic    | NJ    |
| 28 | New England        | NH    |
| 29 | New England        | VT    |
| 30 | New England        | ME    |
| 31 | New England        | MA    |
| 32 | New England        | RI    |
| 33 | West South Central | OK    |
| 34 | West South Central | AR    |
| 35 | West South Central | TX    |
| 36 | West South Central | LA    |
| 37 | East South Central | KY    |
| 38 | East South Central | TN    |
| 39 | East South Central | MS    |
| 40 | East South Central | AL    |
| 41 | South Atlantic     | WV    |
| 42 | South Atlantic     | VA    |
| 43 | South Atlantic     | NC    |
| 44 | South Atlantic     | SC    |
| 45 | South Atlantic     | GA    |
| 46 | South Atlantic     | FL    |
| 47 | South Atlantic     | DE    |
| 48 | South Atlantic     | MD    |
| 49 | South Atlantic     | DC    |
| 50 | Alaska-Hawaii      | AK    |
| 51 | Alaska-Hawaii      | HI    |
+----+--------------------+-------+
4

1 に答える 1

1

ここでは、テーブルの説明について非常に大きな推測をしていますが、このようなものです (テストされていません)。これにより、州ごとに 1 つの行を持つ地域のテーブルを使用するアイデアが得られることを願っています。

SELECT b.Region, a.State, AVG(SaleValue) AS Average_Sales_by_state, COUNT(b.DistributorId)
FROM Sales a
INNER JOIN Distributors b ON a.DistributorId = b.DistributorId
INNER JOIN US_Regions c ON b.State = c.State
GROUP BY b.Region, a.State
ORDER BY b.Region, Average_Sales_by_state DESC
于 2013-01-29T11:04:00.727 に答える