ホームページ > データベース > mysql チュートリアル > mysqlの列に行に旋回する方法は?

mysqlの列に行に旋回する方法は?

Mary-Kate Olsen
リリース: 2025-01-25 11:42:11
オリジナル
287 人が閲覧しました

How to Pivot Rows into Columns in MySQL?

mysqlデータテーブル請求書の変更詳細な説明

はじめに

データテーブルは、データテーブルの観測値と列を表して、属性のデータを非常に有用なデータ操作手法に変換します。この記事では、MySQLでこの変換を達成する方法を徐々に説明します。

ステップ1:ターゲット列を選択

を選択します

ターゲットパースペクティブテーブルのy値(結果テーブルライン)とx値(結果表)が決定されることが判断されます。この例では、「HostID」が値として使用され、「itemName」がX値として使用されます。

ステップ2:基本テーブルを拡張して追加の追加

各x値の基本に新しいリストを追加します。ユースケース式は、これらの列をItemNameに基づいて対応するItemValueに記入します。

ステップ3:パケットと集約拡張テーブル

拡張テーブルはy値列に従って梱包され、x値列には適切な関数(合計など)が集約されます。

ステップ4:Beautify(Optional)

重合表のnull値を選択したニュートラル値(例、0)に置き換えて、視覚のより明確な結果を作成します。

次の基本表を検討してください:

パースペクティブテーブルを作成します

hostid itemname itemvalue
1 A 10
1 B 3
2 A 9
2 C 40

results

<code class="language-sql">-- 步骤 1:选择目标列
SELECT hostid, itemname, itemvalue
FROM history;

-- 步骤 2:扩展基础表添加额外列
CREATE VIEW history_extended AS
SELECT
  history.*,
  CASE WHEN itemname = "A" THEN itemvalue END AS A,
  CASE WHEN itemname = "B" THEN itemvalue END AS B,
  CASE WHEN itemname = "C" THEN itemvalue END AS C
FROM history;

-- 步骤 3:分组和聚合扩展表
CREATE VIEW history_itemvalue_pivot AS
SELECT
  hostid,
  SUM(A) AS A,
  SUM(B) AS B,
  SUM(C) AS C
FROM history_extended
GROUP BY hostid;

-- 步骤 4:美化
CREATE VIEW history_itemvalue_pivot_pretty AS
SELECT 
  hostid, 
  COALESCE(A, 0) AS A, 
  COALESCE(B, 0) AS B, 
  COALESCE(C, 0) AS C 
FROM history_itemvalue_pivot;

-- 最终结果
SELECT *
FROM history_itemvalue_pivot_pretty;</code>
ログイン後にコピー
この例は、MySQLのテーブルを効果的に再構築して、ラインを列に変換する方法を示しています。

以上がmysqlの列に行に旋回する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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