欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

mysql橫表怎么轉(zhuǎn)縱表,表格怎么橫向轉(zhuǎn)縱向

SQL中的統(tǒng)計(jì)加橫表轉(zhuǎn)縱表

根本沒涉及橫縱。

創(chuàng)新互聯(lián)建站主要從事做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)張店,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

select a.*,b.軍人人數(shù),c.武警人數(shù) from

(select 所在位置,count(*) as 警察人數(shù) from 表 where 職務(wù)='警察' group by 位置) as a left jion

(select 所在位置,count(*) as 軍人人數(shù) from 表 where 職務(wù)='軍人' group by 位置) as b

on a.所在位置=b.所在位置 left jion

(select 所在位置,count(*) as 武警人數(shù) from 表 where 職務(wù)='武警' group by 位置) as c on a.所在位置=c.所在位置

mysql 縱表轉(zhuǎn)橫表,高手請(qǐng)支招

你這個(gè)需要后臺(tái)處理一下才可以,直接轉(zhuǎn)換比較麻煩,效率也不高。因?yàn)槟阈枰?jì)算出每天的開始時(shí)間和結(jié)束時(shí)間insert into newtable select employeeID,days,MAX(cardTime) as endtime,Min(cardTime) as starttime from

table group by employeeID,days; 大概就這意思,自己在調(diào)試調(diào)試吧

如何將橫表轉(zhuǎn)換成縱表

將要改的行"復(fù)制",點(diǎn)擊鼠標(biāo)右鍵,"選擇性粘貼",在對(duì)話框中選擇最下面的"轉(zhuǎn)置",就可以實(shí)現(xiàn)你想要的結(jié)果

橫縱表的相互轉(zhuǎn)換!

--行列互轉(zhuǎn)

/******************************************************************************************************************************************************

以學(xué)生成績?yōu)槔樱容^形象易懂

整理人:中國風(fēng)(Roy)

日期:2008.06.06

******************************************************************************************************************************************************/

--1、行互列

-- -- (Roy)生成測試數(shù)據(jù)

if not object_id('Class') is null

drop table Class

Go

Create table Class([student] nvarchar(2),[subject] nvarchar(2),[grade] int)

Insert Class

select N'張三',N'語文',78 union all

select N'張三',N'數(shù)學(xué)',87 union all

select N'張三',N'英語',82 union all

select N'張三',N'物理',90 union all

select N'李四',N'語文',65 union all

select N'李四',N'數(shù)學(xué)',77 union all

select N'李四',N'英語',65 union all

select N'李四',N'物理',85

Go

--2000方法:

動(dòng)態(tài):

declare @s nvarchar(4000)

set @s=''

Select @s=@s+','+quotename([subject])+'=max(case when [subject]='+quotename([subject],'''')+' then [grade] else 0 end)'

from Class group by[subject]

exec('select [student]'+@s+' from Class group by [student]')

生成靜態(tài):

select

[student],

[數(shù)學(xué)]=max(case when [subject]='數(shù)學(xué)' then [grade] else 0 end),

[物理]=max(case when [subject]='物理' then [grade] else 0 end),

[英語]=max(case when [subject]='英語' then [grade] else 0 end),

[語文]=max(case when [subject]='語文' then [grade] else 0 end)

from

Class

group by [student]

GO

動(dòng)態(tài):

declare @s nvarchar(4000)

Select @s=isnull(@s+',','')+quotename([subject]) from Class group by[subject]

exec('select * from Class pivot (max([grade]) for [subject] in('+@s+'))b')

生成靜態(tài):

select *

from

Class

pivot

(max([grade]) for [subject] in([數(shù)學(xué)],[物理],[英語],[語文]))b

生成格式:

/*

student 數(shù)學(xué) 物理 英語 語文

------- ----------- ----------- ----------- -----------

李四 77 85 65 65

張三 87 90 82 78

(2 行受影響)

*/

------------------------------------------------------------------------------------------

go

--加上總成績(學(xué)科平均分)

--2000方法:

動(dòng)態(tài):

declare @s nvarchar(4000)

set @s=''

Select @s=@s+','+quotename([subject])+'=max(case when [subject]='+quotename([subject],'''')+' then [grade] else 0 end)'

from Class group by[subject]

exec('select [student]'+@s+',[總成績]=sum([grade]) from Class group by [student]')--加多一列(學(xué)科平均分用avg([grade]))

生成動(dòng)態(tài):

select

[student],

[數(shù)學(xué)]=max(case when [subject]='數(shù)學(xué)' then [grade] else 0 end),

[物理]=max(case when [subject]='物理' then [grade] else 0 end),

[英語]=max(case when [subject]='英語' then [grade] else 0 end),

[語文]=max(case when [subject]='語文' then [grade] else 0 end),

[總成績]=sum([grade]) --加多一列(學(xué)科平均分用avg([grade]))

from

Class

group by [student]

go

--2005方法:

動(dòng)態(tài):

declare @s nvarchar(4000)

Select @s=isnull(@s+',','')+quotename([subject]) from Class group by[subject] --isnull(@s+',','') 去掉字符串@s中第一個(gè)逗號(hào)

exec('select [student],'+@s+',[總成績] from (select *,[總成績]=sum([grade])over(partition by [student]) from Class) a

pivot (max([grade]) for [subject] in('+@s+'))b ')

生成靜態(tài):

select

[student],[數(shù)學(xué)],[物理],[英語],[語文],[總成績]

from

(select *,[總成績]=sum([grade])over(partition by [student]) from Class) a --平均分時(shí)用avg([grade])

pivot

(max([grade]) for [subject] in([數(shù)學(xué)],[物理],[英語],[語文]))b

生成格式:

/*

student 數(shù)學(xué) 物理 英語 語文 總成績

------- ----------- ----------- ----------- ----------- -----------

李四 77 85 65 65 292

張三 87 90 82 78 337

(2 行受影響)

*/

go

--2、列轉(zhuǎn)行

-- -- (Roy)生成測試數(shù)據(jù)

if not object_id('Class') is null

drop table Class

Go

Create table Class([student] nvarchar(2),[數(shù)學(xué)] int,[物理] int,[英語] int,[語文] int)

Insert Class

select N'李四',77,85,65,65 union all

select N'張三',87,90,82,78

Go

--2000:

動(dòng)態(tài):

declare @s nvarchar(4000)

select @s=isnull(@s+' union all ','')+'select [student],[subject]='+quotename(Name,'''')--isnull(@s+' union all ','') 去掉字符串@s中第一個(gè)union all

+',[grade]='+quotename(Name)+' from Class'

from syscolumns where ID=object_id('Class') and Name not in('student')--排除不轉(zhuǎn)換的列

order by Colid

exec('select * from ('+@s+')t order by [student],[subject]')--增加一個(gè)排序

生成靜態(tài):

select *

from (select [student],[subject]='數(shù)學(xué)',[grade]=[數(shù)學(xué)] from Class union all

select [student],[subject]='物理',[grade]=[物理] from Class union all

select [student],[subject]='英語',[grade]=[英語] from Class union all

select [student],[subject]='語文',[grade]=[語文] from Class)t

order by [student],[subject]

go

--2005:

動(dòng)態(tài):

declare @s nvarchar(4000)

select @s=isnull(@s+',','')+quotename(Name)

from syscolumns where ID=object_id('Class') and Name not in('student')

order by Colid

exec('select student,[subject],[grade] from Class unpivot ([grade] for [subject] in('+@s+'))b')

go

select

student,[subject],[grade]

from

Class

unpivot

([grade] for [subject] in([數(shù)學(xué)],[物理],[英語],[語文]))b

生成格式:

/*

student subject grade

------- ------- -----------

李四 數(shù)學(xué) 77

李四 物理 85

李四 英語 65

李四 語文 65

張三 數(shù)學(xué) 87

張三 物理 90

張三 英語 82

張三 語文 78

(8 行受影響)

*/

橫表轉(zhuǎn)縱表

select sum((case when name='序號(hào)' then type end)) 序號(hào),

sum((case when name='截止日期' then type end)) 截止日期,

sum((case when name='品種' then type end)) 品種,

sum((case when name='種植進(jìn)度' then type end)) 種植進(jìn)度,

sum((case when name='當(dāng)期' then type end)) 當(dāng)期,

sum((case when name='5年平均' then type end)) 5年平均

from 表 gup by 1;

mysql縱表轉(zhuǎn)橫表

分兩次進(jìn)行不同的查詢就可以實(shí)現(xiàn)了

先查出組員信息,比如組員數(shù)量、文章總數(shù)、評(píng)論總數(shù)等

再查出組長信息

兩個(gè)查詢一合并就可以了

SQL角本如下:

select?a.用戶名?組長,?b.組員數(shù)量,?b.文章總數(shù),?b.評(píng)論總數(shù)

from?(select?編號(hào),?用戶名?from?table_name?where?角色?=?'組長')?a,?--?找組長信息

(select?組長,?

count(1)?組員數(shù)量,

sum(文章)?文章總數(shù),

sum(評(píng)論)?評(píng)論總數(shù)

from?table_name

where?組長?is?not?null

group?by?組長)?b???--?找組員信息

where?a.編號(hào)?=?b.組長

當(dāng)前標(biāo)題:mysql橫表怎么轉(zhuǎn)縱表,表格怎么橫向轉(zhuǎn)縱向
網(wǎng)頁網(wǎng)址:http://chinadenli.net/article11/dsehdgd.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)域名注冊(cè)靜態(tài)網(wǎng)站用戶體驗(yàn)網(wǎng)站設(shè)計(jì)公司電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)