sql進行行列轉換

2021-09-24 11:38:23 字數 1825 閱讀 2133

1.分別求出孫悟空、豬八戒、沙僧的總打怪數

select sum(kills) from user1 a join user_kills b on a.id=b.user_id where a.user_name='孫悟空' ;

select sum(kills) from user1 a join user_kills b on a.id=b.user_id where a.user_name='豬八戒' ;

select sum(kills) from user1 a join user_kills b on a.id=b.user_id where a.user_name='沙僧' ;

2.是從cross join的方式關聯上述3個表的結果

select * from

(select sum(kills) as '孫悟空' from user1 a join user_kills b on a.id=b.user_id where a.user_name='孫悟空' ) a

cross join

(select sum(kills) as '豬八戒' from user1 a join user_kills b on a.id=b.user_id where a.user_name='豬八戒') b

cross join

(select sum(kills) as '沙僧' from user1 a join user_kills b on a.id=b.user_id where a.user_name='沙僧') c

select * from

(select sum(hour) as '張三' from teachers a join teacherdate b on a.name=b.name where a.name='張三' ) a

cross join

(select sum(hour) as '李四' from teachers a join teacherdate b on a.name=b.name where a.name='李四') b

cross join

(select sum(hour) as '王五' from teachers a join teacherdate b on a.name=b.name where a.name='王五') c

3.使用case的方式實現

select

sum(case when b.name='張三' then b.hour end) as '張三',

sum(case when b.name='李四' then b.hour end) as '李四',

sum(case when b.name='王五' then b.hour end) as '王五'

SQL進行行列轉換

假設現在有這樣一張表 create table dbo relconlist listid allint identity 1,1 not null listfkmainid varchar 20 collate chinese prc ci as not null listfkrelid varc...

使用 case when進行行列轉換

固定列數的行列轉換,表結構為 轉換後 要求 建立表,源表,表名 student 只用一句sql 得到轉換結果。解答 方法一 通過生成臨時表的方式操作 select name sum yw as 語文 sum sx as 數學 sum wy as 英語 from select name case su...

MySQL之進行行列轉換

內容介紹 如何進行行列轉換 如何生成唯一序列號 如何刪除重複資料 一 如何進行行列轉換 需要用到的場景 主要兩個場景 報表統計 彙總顯示 使用自連線實現行列轉換 行轉列比如成績 1 分別查詢出不同同學的成績,並將欄位名改為同學的名字。2 通過交叉連線,將不同的語句連線起來 select from s...