Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
339 views
in Technique[技术] by (71.8m points)

sql - How to convert aggregation results into columns?

Please advise me if you know the terminology to describe to following action:

Input

dfips   dcounty        context  sumton
19001   Adair County    mail    6521.79995560646
19001   Adair County    Rail    38411.5996840298

Output:

dfips   dcounty       mail_sumton      rail_sumton 
19001 Adair County    6521.79995560646 38411.5996840298

I want to convert the input to the output, but I am not sure how to describe such action. The best I can come up with is convert aggregation results into columns.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The simple crosstab version of a pivot() would look like this:

select 
    dfips
  , dcounty
  , mail_sumton = sum(case when context = 'mail' then sumton else null end)
  , rail_sumton = sum(case when context = 'rail' then sumton else null end)
from t
group by dfips, dcounty

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...