ホームページ > データベース > mysql チュートリアル > 集計関数を使用せずに T-SQL テーブルをピボットする方法

集計関数を使用せずに T-SQL テーブルをピボットする方法

Susan Sarandon
リリース: 2025-01-20 09:57:09
オリジナル
858 人が閲覧しました

How to Pivot a T-SQL Table Without Using Aggregate Functions?

T-SQL ピボット: 集計関数は必要ありません

場合によっては、SUM や COUNT などの集計関数を使用せずに、テーブル内のデータをピボット形式に変換する必要がある場合があります。この例では、集計関数が必要ない場合に PIVOT 演算子を使用する独自の方法を示します。

顧客情報を含むソーステーブルがあるとします:

CustomerID DBColumnName Data
1 FirstName Joe
1 MiddleName S
1 LastName Smith
1 Date 12/12/2009
2 FirstName Sam
2 MiddleName S
2 LastName Freddrick
2 Date 1/12/2009
3 FirstName Jaime
3 MiddleName S
3 LastName Carol
3 Date 12/1/2009

ターゲットの出力は、顧客情報を個別の列に表示するピボット テーブルです:

CustomerID FirstName MiddleName LastName Date
1 Joe S Smith 12/12/2009
2 Sam S Freddrick 1/12/2009
3 Jaime S Carol 12/1/2009

集計関数を使用せずにこれを実現するには、次の T-SQL クエリを使用できます。

<code class="language-sql">SELECT CustomerID,
       MIN(CASE DBColumnName WHEN 'FirstName' THEN Data END) AS FirstName,
       MIN(CASE DBColumnName WHEN 'MiddleName' THEN Data END) AS MiddleName,
       MIN(CASE DBColumnName WHEN 'LastName' THEN Data END) AS LastName,
       MIN(CASE DBColumnName WHEN 'Date' THEN Data END) AS Date
  FROM table
 GROUP BY CustomerId;</code>
ログイン後にコピー

このクエリは、CASE ステートメントで MIN 関数を使用して、DBColumnName に基づいて各列の最小値を選択します。 「GROUP BY」句は、CustomerID ごとに結果をグループ化するために使用されます。

このアプローチは、集計関数を使用する場合に比べて扱いにくく非効率的に見えるかもしれませんが、集計関数が適切ではない特定の状況 (一意の値や個別の値を扱う場合など) では、より高い柔軟性を提供できます。必ずクエリの特定のニーズを評価し、特定の状況に最も適切なアプローチを選択してください。

以上が集計関数を使用せずに T-SQL テーブルをピボットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート