最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

學(xué)習(xí)mysql?如何行轉(zhuǎn)列與列傳行

 更新時(shí)間:2022年02月18日 14:26:23   作者:孫中明  
這篇文章主要介紹了mysql行轉(zhuǎn)列與列傳行的使用方法,幫助大家更好的理解和學(xué)習(xí)MySQL的使用,語(yǔ)句不難,但有一定的知識(shí)參考價(jià)值,需要的朋友可以參考一下,希望給你的學(xué)習(xí)帶來(lái)幫助

一、行轉(zhuǎn)列— case+group by

mysql> CREATE TABLE `TEST_TB_GRADE` (
? ? -> ?`ID` int(10) NOT NULL AUTO_INCREMENT,
? ? -> ?`USER_NAME` varchar(20) DEFAULT NULL,
? ? -> ?`COURSE` varchar(20) DEFAULT NULL,
? ? -> ?`SCORE` float DEFAULT '0',
? ? -> ?PRIMARY KEY (`ID`)
? ? -> ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

插入數(shù)據(jù):

mysql> insert into TEST_TB_GRADE(USER_NAME, COURSE, SCORE) values
? ? -> ("張三", "數(shù)學(xué)", 34),
? ? -> ("張三", "語(yǔ)文", 58),
? ? -> ("張三", "英語(yǔ)", 58),
? ? -> ("李四", "數(shù)學(xué)", 45),
? ? -> ("李四", "語(yǔ)文", 87),
? ? -> ("李四", "英語(yǔ)", 45),
? ? -> ("王五", "數(shù)學(xué)", 76),
? ? -> ("王五", "語(yǔ)文", 34),
? ? -> ("王五", "英語(yǔ)", 89);

查詢表:

mysql> select * from test_tb_grade;
+----+-----------+--------+-------+
| ID | USER_NAME | COURSE | SCORE |
+----+-----------+--------+-------+
| ?1 | 張三 ? ? ?| 數(shù)學(xué) ? | ? ?34 |
| ?2 | 張三 ? ? ?| 語(yǔ)文 ? | ? ?58 |
| ?3 | 張三 ? ? ?| 英語(yǔ) ? | ? ?58 |
| ?4 | 李四 ? ? ?| 數(shù)學(xué) ? | ? ?45 |
| ?5 | 李四 ? ? ?| 語(yǔ)文 ? | ? ?87 |
| ?6 | 李四 ? ? ?| 英語(yǔ) ? | ? ?45 |
| ?7 | 王五 ? ? ?| 數(shù)學(xué) ? | ? ?76 |
| ?8 | 王五 ? ? ?| 語(yǔ)文 ? | ? ?34 |
| ?9 | 王五 ? ? ?| 英語(yǔ) ? | ? ?89 |
+----+-----------+--------+-------+

不用聚集函數(shù)和group by語(yǔ)句:

mysql> SELECT user_name ,
? ? -> ? (CASE course WHEN '數(shù)學(xué)' THEN score ELSE 0 END ) 數(shù)學(xué),
? ? -> ? (CASE course WHEN '語(yǔ)文' THEN score ELSE 0 END ) 語(yǔ)文,
? ? -> ? (CASE course WHEN '英語(yǔ)' THEN score ELSE 0 END ) 英語(yǔ)
? ? -> FROM test_tb_grade;
+-----------+--------+--------+--------+
| user_name | 數(shù)學(xué) ? | 語(yǔ)文 ? | 英語(yǔ) ? |
+-----------+--------+--------+--------+
| 張三 ? ? ?| ? ? 34 | ? ? ?0 | ? ? ?0 |
| 張三 ? ? ?| ? ? ?0 | ? ? 58 | ? ? ?0 |
| 張三 ? ? ?| ? ? ?0 | ? ? ?0 | ? ? 58 |
| 李四 ? ? ?| ? ? 45 | ? ? ?0 | ? ? ?0 |
| 李四 ? ? ?| ? ? ?0 | ? ? 87 | ? ? ?0 |
| 李四 ? ? ?| ? ? ?0 | ? ? ?0 | ? ? 45 |
| 王五 ? ? ?| ? ? 76 | ? ? ?0 | ? ? ?0 |
| 王五 ? ? ?| ? ? ?0 | ? ? 34 | ? ? ?0 |
| 王五 ? ? ?| ? ? ?0 | ? ? ?0 | ? ? 89 |
+-----------+--------+--------+--------+

用group by語(yǔ)句:

mysql> SELECT user_name ,
? ? -> ? (CASE course WHEN '數(shù)學(xué)' THEN score ELSE 0 END ) 數(shù)學(xué),
? ? -> ? (CASE course WHEN '語(yǔ)文' THEN score ELSE 0 END ) 語(yǔ)文,
? ? -> ? (CASE course WHEN '英語(yǔ)' THEN score ELSE 0 END ) 英語(yǔ)
? ? -> FROM test_tb_grade
? ? -> group by user_name;
+-----------+--------+--------+--------+
| user_name | 數(shù)學(xué) ? | 語(yǔ)文 ? | 英語(yǔ) ? |
+-----------+--------+--------+--------+
| 張三 ? ? ?| ? ? 34 | ? ? ?0 | ? ? ?0 |
| 李四 ? ? ?| ? ? 45 | ? ? ?0 | ? ? ?0 |
| 王五 ? ? ?| ? ? 76 | ? ? ?0 | ? ? ?0 |
+-----------+--------+--------+--------+

用group by語(yǔ)句和聚集函數(shù)實(shí)現(xiàn)行轉(zhuǎn)列:

mysql> SELECT user_name ,
? ? -> ? MAX(CASE course WHEN '數(shù)學(xué)' THEN score ELSE 0 END ) 數(shù)學(xué),
? ? -> ? MAX(CASE course WHEN '語(yǔ)文' THEN score ELSE 0 END ) 語(yǔ)文,
? ? -> ? MAX(CASE course WHEN '英語(yǔ)' THEN score ELSE 0 END ) 英語(yǔ)
? ? -> FROM test_tb_grade
? ? -> group by user_name;
+-----------+--------+--------+--------+
| user_name | 數(shù)學(xué) ? | 語(yǔ)文 ? | 英語(yǔ) ? |
+-----------+--------+--------+--------+
| 張三 ? ? ?| ? ? 34 | ? ? 58 | ? ? 58 |
| 李四 ? ? ?| ? ? 45 | ? ? 87 | ? ? 45 |
| 王五 ? ? ?| ? ? 76 | ? ? 34 | ? ? 89 |
+-----------+--------+--------+--------+

二、列轉(zhuǎn)行——union

CREATE TABLE `TEST_TB_GRADE2` (
?`ID` int(10) NOT NULL AUTO_INCREMENT,
?`USER_NAME` varchar(20) DEFAULT NULL,
?`CN_SCORE` float DEFAULT NULL,
?`MATH_SCORE` float DEFAULT NULL,
?`EN_SCORE` float DEFAULT '0',
?PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

插入數(shù)據(jù):

insert into TEST_TB_GRADE2(USER_NAME, CN_SCORE, MATH_SCORE, EN_SCORE) values
("張三", 34, 58, 58),
("李四", 45, 87, 45),
("王五", 76, 34, 89);

查詢:

mysql> select * from test_tb_grade2;
+----+-----------+----------+------------+----------+
| ID | USER_NAME | CN_SCORE | MATH_SCORE | EN_SCORE |
+----+-----------+----------+------------+----------+
| ?1 | 張三 ? ? ?| ? ? ? 34 | ? ? ? ? 58 | ? ? ? 58 |
| ?2 | 李四 ? ? ?| ? ? ? 45 | ? ? ? ? 87 | ? ? ? 45 |
| ?3 | 王五 ? ? ?| ? ? ? 76 | ? ? ? ? 34 | ? ? ? 89 |
+----+-----------+----------+------------+----------+

不求并集:

mysql> select user_name, '語(yǔ)文' COURSE , CN_SCORE as SCORE from test_tb_grade2;
+-----------+--------+-------+
| user_name | COURSE | SCORE |
+-----------+--------+-------+
| 張三 ? ? ?| 語(yǔ)文 ? | ? ?34 |
| 李四 ? ? ?| 語(yǔ)文 ? | ? ?45 |
| 王五 ? ? ?| 語(yǔ)文 ? | ? ?76 |
+-----------+--------+-------+

求并集:

mysql> select user_name, '語(yǔ)文' COURSE , CN_SCORE as SCORE from test_tb_grade2
? ? -> union select user_name, '數(shù)學(xué)' COURSE, MATH_SCORE as SCORE from test_tb_grade2
? ? -> union select user_name, '英語(yǔ)' COURSE, EN_SCORE as SCORE from test_tb_grade2;
+-----------+--------+-------+
| user_name | COURSE | SCORE |
+-----------+--------+-------+
| 張三 ? ? ?| 語(yǔ)文 ? | ? ?34 |
| 李四 ? ? ?| 語(yǔ)文 ? | ? ?45 |
| 王五 ? ? ?| 語(yǔ)文 ? | ? ?76 |
| 張三 ? ? ?| 數(shù)學(xué) ? | ? ?58 |
| 李四 ? ? ?| 數(shù)學(xué) ? | ? ?87 |
| 王五 ? ? ?| 數(shù)學(xué) ? | ? ?34 |
| 張三 ? ? ?| 英語(yǔ) ? | ? ?58 |
| 李四 ? ? ?| 英語(yǔ) ? | ? ?45 |
| 王五 ? ? ?| 英語(yǔ) ? | ? ?89 |
+-----------+--------+-------+

order by語(yǔ)句:

mysql> select user_name, '語(yǔ)文' COURSE , CN_SCORE as SCORE from test_tb_grade2
? ? -> union select user_name, '數(shù)學(xué)' COURSE, MATH_SCORE as SCORE from test_tb_grade2
? ? -> union select user_name, '英語(yǔ)' COURSE, EN_SCORE as SCORE from test_tb_grade2
? ? -> order by user_name,COURSE;
+-----------+--------+-------+
| user_name | COURSE | SCORE |
+-----------+--------+-------+
| 張三 ? ? ?| 數(shù)學(xué) ? | ? ?58 |
| 張三 ? ? ?| 英語(yǔ) ? | ? ?58 |
| 張三 ? ? ?| 語(yǔ)文 ? | ? ?34 |
| 李四 ? ? ?| 數(shù)學(xué) ? | ? ?87 |
| 李四 ? ? ?| 英語(yǔ) ? | ? ?45 |
| 李四 ? ? ?| 語(yǔ)文 ? | ? ?45 |
| 王五 ? ? ?| 數(shù)學(xué) ? | ? ?34 |
| 王五 ? ? ?| 英語(yǔ) ? | ? ?89 |
| 王五 ? ? ?| 語(yǔ)文 ? | ? ?76 |
+-----------+--------+-------+

到此這篇關(guān)于mysql 行轉(zhuǎn)列與列傳行的文章就介紹到這了,更多相關(guān)mysql 行轉(zhuǎn)列與列傳行內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mysql存儲(chǔ)過(guò)程中游標(biāo)的用法實(shí)例

    Mysql存儲(chǔ)過(guò)程中游標(biāo)的用法實(shí)例

    這篇文章主要介紹了Mysql存儲(chǔ)過(guò)程中游標(biāo)的用法,以商戶關(guān)聯(lián)數(shù)據(jù)的插入及更新為例分析了MySQL存儲(chǔ)過(guò)程中游標(biāo)的使用技巧,需要的朋友可以參考下
    2015-07-07
  • mysql 數(shù)據(jù)庫(kù)基礎(chǔ)筆記

    mysql 數(shù)據(jù)庫(kù)基礎(chǔ)筆記

    mysql 數(shù)據(jù)庫(kù)基礎(chǔ)筆記,剛開(kāi)始接觸mysql的朋友可以參考下
    2012-07-07
  • MySQL自動(dòng)停機(jī)的問(wèn)題處理實(shí)戰(zhàn)記錄

    MySQL自動(dòng)停機(jī)的問(wèn)題處理實(shí)戰(zhàn)記錄

    這篇文章主要給大家介紹了關(guān)于MySQL自動(dòng)停機(jī)的問(wèn)題處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • SQL實(shí)現(xiàn)LeetCode(184.系里最高薪水)

    SQL實(shí)現(xiàn)LeetCode(184.系里最高薪水)

    這篇文章主要介紹了SQL實(shí)現(xiàn)LeetCode(184.系里最高薪水),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • MySQL GTID集合運(yùn)算函數(shù)總結(jié)

    MySQL GTID集合運(yùn)算函數(shù)總結(jié)

    本文主要介紹了MySQL GTID集合運(yùn)算函數(shù)總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • MySQL索引設(shè)計(jì)原則深入分析講解

    MySQL索引設(shè)計(jì)原則深入分析講解

    為了使索引的使用效率更高,在創(chuàng)建索引時(shí),必須考慮在哪些字段上創(chuàng)建索引和創(chuàng)建什么類型的索引。索引設(shè)計(jì)不合理或者缺少索引都會(huì)對(duì)數(shù)據(jù)庫(kù)和應(yīng)用程序的性能造成障礙。高效的索引對(duì)于獲得良好的性能非常重要。設(shè)計(jì)索引時(shí),應(yīng)該考慮相應(yīng)準(zhǔn)則
    2023-01-01
  • MySQL優(yōu)化之InnoDB優(yōu)化

    MySQL優(yōu)化之InnoDB優(yōu)化

    InnoDB是為Mysql處理巨大數(shù)據(jù)量時(shí)的最大性能設(shè)計(jì)。它的CPU效率可能是任何其它基于磁盤的關(guān)系數(shù)據(jù)庫(kù)引擎所不能匹敵的。在數(shù)據(jù)量大的網(wǎng)站或是應(yīng)用中Innodb是倍受青睞的。那么它就不需要優(yōu)化了嗎,答案很顯然:當(dāng)然不是!??!
    2017-03-03
  • mysql Innodb表空間卸載、遷移、裝載的使用方法

    mysql Innodb表空間卸載、遷移、裝載的使用方法

    從MySQL的Innodb特性中我們知道,Inndob的表空間有共享和獨(dú)享的特點(diǎn),如果是共享的。則默認(rèn)會(huì)把表空間存放在一個(gè)文件中(ibdata1),當(dāng)開(kāi)啟獨(dú)享表空間參數(shù)Innodb_file_per_table時(shí),會(huì)為每個(gè)Innodb表創(chuàng)建一個(gè).ibd的文件。文章討論在獨(dú)享表空間卸載、裝載、遷移Innodb表的情況
    2013-11-11
  • MySQL用作備份還原的導(dǎo)入和導(dǎo)出命令用法整理

    MySQL用作備份還原的導(dǎo)入和導(dǎo)出命令用法整理

    這篇文章主要介紹了MySQL用作備份還原的導(dǎo)入和導(dǎo)出命令用法整理,包括mysqldump的命令的使用以及l(fā)oad data相關(guān)命令,需要的朋友可以參考下
    2015-12-12
  • SQL中CAST()實(shí)例之轉(zhuǎn)換數(shù)據(jù)類型

    SQL中CAST()實(shí)例之轉(zhuǎn)換數(shù)據(jù)類型

    CAST函數(shù)用于將某種數(shù)據(jù)類型的表達(dá)式顯式轉(zhuǎn)換為另一種數(shù)據(jù)類型,下面這篇文章主要給大家介紹了關(guān)于SQL中CAST()實(shí)例之轉(zhuǎn)換數(shù)據(jù)類型的相關(guān)資料,需要的朋友可以參考下
    2023-01-01

最新評(píng)論

铁岭县| 永仁县| 桓仁| 习水县| 巨鹿县| 苏州市| 鹤岗市| 安国市| 岳池县| 明溪县| 巴彦县| 墨玉县| 拉孜县| 岳阳县| 松原市| 恩平市| 陵川县| 新丰县| 冀州市| 嘉黎县| 娄底市| 长阳| 长葛市| 黑河市| 绥宁县| 平陆县| 蕲春县| 多伦县| 龙岩市| 平凉市| 始兴县| 华池县| 大丰市| 界首市| 江口县| 永平县| 平遥县| 五寨县| 宁城县| 台州市| 通榆县|