データ変換にはアンピボットが必要になることが多く、通常は集計関数を使用して実現されます。ただし、集計を行わずにピボットすることも可能です。
各行が顧客 (CustomerID、DBColumnName、および対応するデータを含む) を表すテーブルを考えてみましょう。 目標は、このデータをピボットし、各顧客のデータを DBColumnName に基づいて個別の列に整理することです。
<code class="language-sql">SELECT CustomerID, MIN(CASE WHEN DBColumnName = 'FirstName' THEN Data END) AS FirstName, MIN(CASE WHEN DBColumnName = 'MiddleName' THEN Data END) AS MiddleName, MIN(CASE WHEN DBColumnName = 'LastName' THEN Data END) AS LastName, MIN(CASE WHEN DBColumnName = 'Date' THEN Data END) AS Date FROM table GROUP BY CustomerID;</code>
この T-SQL クエリは、条件付きロジック (CASE ステートメント) を使用して、DBColumnName に基づいてデータを選択します。 MIN()
関数は、各顧客の列に対して 1 つの値のみが選択されるようにします。 これにより、従来の意味での集計を使用せずにデータが効果的にピボットされ、各顧客の属性が個別の列に編成されます。 この方法により、非数値データを扱う際の集計に関連する潜在的な問題が回避されます。
以上が集計関数を使用せずに T-SQL データをピボットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。