MySQL水平および垂直テーブル変換操作の実装方法

MySQL水平および垂直テーブル変換操作の実装方法

この記事では、例を使用して、MySQL の水平テーブルと垂直テーブル間の変換操作を実装する方法を説明します。ご参考までに、詳細は以下の通りです。

まずスコア表(縦の表)を作成します

テーブルuser_scoreを作成する
(
  名前varchar(20),
  科目varchar(20),
  スコア int
);
user_score(name,subjects,score) に values('张三','語文',60) を挿入します。
user_score(name,subjects,score) に values('张三','数学',70) を挿入します。
user_score(name,subjects,score) に values('张三','英语',80) を挿入します。
user_score(name,subjects,score) に values('李四','語文',90) を挿入します。
user_score(name,subjects,score) に values('李四','数学',100) を挿入します。

別のスコア表(横表)を作成する

テーブルuser_score2を作成する
(
  名前varchar(20),
  ユウェンint、
  シュシュエint、
  インユイント
);
user_score2(name,yuwen,shuxue,yingyu) に values('张三',60,70,80) を挿入します。
user_score2(name,yuwen,shuxue,yingyu) に values('李四',90,100,0) を挿入します。

縦の表を横の表に変換する

名前、合計を選択(case subject when 'Chinese' then score else 0 end) 
as '中国語',sum(case 科目 when '数学' then スコア else 0 end) 
'数学' の場合、sum(case 科目 when '英語' then スコア else 0 end) 
user_score から名前でグループ化して「英語」として;

縦の表を横の表に変換する

SELECT name,'yuwen' AS subject,yuwen AS score FROM user_score2 UNION ALL  
SELECT name,'shuxue' AS subject,shuxue AS score FROM user_score2 UNION ALL  
SELECT name,'yingyu' AS subject,yingyu AS score FROM user_score2 
ORDER BY name,subjects DESC; 

MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL クエリ スキル」、「MySQL トランザクション操作スキル」、「MySQL ストアド プロシージャ スキル」、「MySQL データベース ロック関連スキルの概要」、および「MySQL 共通関数の概要」

この記事が皆様のMySQLデータベース設計に役立つことを願っています。

以下もご興味があるかもしれません:
  • MySQL の垂直テーブルを水平テーブルに変換する方法と最適化のチュートリアル

<<:  Nginx 仮想ホストの詳細な分析

>>:  Vue+Openlayerはmodifyを使用して要素の完全なコードを変更します

推薦する

Apache での ab パフォーマンス テスト結果を分析する

私はパフォーマンス テストを行うために常に Loadrunner を使用してきました。 Loadru...

MySQL のバックアップとリカバリの設計アイデア

背景まず、背景を説明します。ある制約により、当社の現在のバックアップ戦略では、1 日おきにフル バッ...

MySQL でレプリケーション フィルターを動的に変更する方法

MySQLはレプリケーションフィルターを動的に変更します今日遭遇した問題についてお話しします。今日は...

jQueryはhide()とtoggle()関数を使用してカメラブランド表示の非表示機能を実現します。

最近、jQuery を学習しているときに、show()、hide()、toggle() 関数に出会い...

CSS3 を使用して入力複数選択ボックスのスタイルをカスタマイズする例

原則: まず入力要素を非表示にし、次に CSS を使用してラベル要素のスタイルを設定します (他の要...

Dockerでコンテナを作成するときにコンテナIPを指定する実装例

Docker はコンテナを作成するときに、デフォルトでブリッジ ネットワークを使用し、IP アドレス...

mysql ビュー関数の分析と使用例

この記事では、例を使用して MySQL ビューの機能と使用方法を説明します。ご参考までに、詳細は以下...

ウェブページの画像の回転を実現するjs

この記事では、Webページの画像の回転を実現するためのjsの具体的なコードを参考までに共有します。具...

CSS3 を使用して左上または右上隅にリマインダー ドットを表示するサンプル コード

効果画像(三角形をご希望の場合は、ここをクリックしてください): コード: <html>...

KTLツールはMySQLからMySQLへのデータの同期方法を実現します

ktl ツールを使用して、mysql から mysql にデータを同期します。 1. 新しいジョブス...

MySQL データベースのデータ テーブルの最適化、外部キーの分析、3 つのパラダイムの使用

この記事では、例を使用して、MySQL データベースのデータ テーブルの最適化、外部キーの使用、およ...

Win7 システムでの MySQL 5.7.11 の詳細なインストール チュートリアル

オペレーティング システム: Win7 64 ビット Ultimate Edition MySQL ...

Centos7 FFmpeg オーディオ/ビデオ ツールのインストールに関する簡単なドキュメント

ffmpeg は非常に強力なオーディオおよびビデオ処理ツールです。公式 Web サイトは http:...

CentOS7 で docker を使用して Apollo 構成センターをデプロイする実装

Apollo オープンソース アドレス: https://github.com/ctripcorp/...

Linuxでディスクをマウントする方法

仮想マシンを使用しているときに、ディスク容量が不足し、継続使用するためにディスクをマウントする必要が...