注:この質問は、同じシナリオを提示する一連の質問の一部です。連載の各質問には、記載されている目標を達成できる可能性のある固有の解決策が含まれています。他の人が正しい解決策を持っていないかもしれない間、いくつかの質問セットは複数の正しい解決策を持つかもしれません。
このセクションで質問に答えた後。あなたはそれに戻ることはできません。その結果、これらの質問はレビュー画面に表示されません。
次のデータベース図に示すように、データベースには2つのテーブルがあります。

少なくとも2つの大都市があるすべての州をリストする必要があります。大都市は、人口が少なくとも100万人であると定義されています。問合せは次の列を返す必要があります。
tblProvince.ProvinceId

tblProvince.ProvinceName

その地域の大都市の総数を表すLargeCityCountという名前の派生列

解決方法:次のTransact-SQLステートメントを実行します。

解決策は目標を満たしていますか?
正解:A
説明/参照:
Explanation:
少なくとも2つの大都市があるすべての州をリストするという要件は、WHERE CitySummary.LargeCityCount> = 2句によって満たされます。
ここにクロス適用します。
注意:
APPLY演算子を使用すると、クエリの外部テーブル式によって返される各行に対してテーブル値関数を呼び出すことができます。テーブル値関数は右入力として機能し、外部テーブル式は左入力として機能します。右入力は左入力から各行に対して評価され、生成された行は最終出力のために結合されます。 APPLY演算子によって生成される列のリストは、左側の入力の列のセットとそれに続く右側の入力の列のリストです。
APPLYには、CROSS APPLYとOUTER APPLYの2つの形式があります。 CROSS APPLYは、テーブル値関数から結果セットを生成する外部テーブルからの行のみを返します。 OUTER APPLYは、結果セットを生成する行と生成しない行の両方を、テーブル値関数によって生成された列にNULL値で返します。
参照先:https://technet.microsoft.com/ja-jp/library/ms175156(v=sql.105).aspx