テーブルを変換線に列に変換します
3列のあるテーブルをデータパースペクティブテーブルに変換し、行が列に変わります。
例:
入力テーブル:
必要な出力(データのパースペクティブテーブル):
hostid | itemname | itemvalue |
---|---|---|
1 | A | 10 |
1 | B | 3 |
2 | A | 9 |
2 | C | 40 |
hostid | A | B | C |
---|---|---|---|
1 | 10 | 3 | 0 |
2 | 9 | 0 | 40 |
興味のある列を選択:
<code class="language-sql">SELECT hostid, itemname, itemvalue FROM history;</code>
HOSIDでのグループ化と各列の値の合計。
<code class="language-sql">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 );</code>
<code class="language-sql">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 );</code>
以上がmysqlでテーブルをピボットする方法:行を列に変換しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。