軟體開發高手須掌握的4大sql精髓語句(一)
馬根峰( 廣東聯合電子收費股份****, 廣州 510300)
作者部落格:
csdn部落格:
qq空間:
0
引言隨著計算機在社會各領域應用的深入,軟體開發人員不得不面臨著或多或少的資料處理、資料庫訪問。
在sql(structured query language)語言dml中,有四大語句堪稱其精髓部分。下面就講述一下其中之一, case when 語句的用法。本文介紹用它實現資料倉儲中的維度轉換,來將資料展現給分析人員來進行決策支援與分析。
case whenconition
then 。。。
else。。。
end
1
資料倉儲中的維度轉換
在資料倉儲資料展現中,我們通常要用到將資料表進行維度轉換。如資料倉儲中某一關係模式
vehsm (roadno, year , fluxcount,。。。)
vehcount_trans (roadno, year fluxcount 1, .。。。, year fluxcount n)
下面筆者就分別以case when語句、brioquery來分別演示一下如何實現維度轉換。
2
case when
語句來實現
維度轉換
下面就以db2資料庫為例,以「萬能資料庫查詢分析器」 中文版本《db 查詢分析器》、英文版本《db query analyzer》作為客戶端工具來來演示一下case when 語句如何實現維度轉換。
select
uu.roadno,rr.roadname,
sum(
case
when
uu.year
=2009
then
uu.fluxcount
else
0end)as
year_2009,
sum(
case
when
uu.year
=2010
then
uu.fluxcount
else
0end)as
year_2010,
sum(
case
when
uu.year
=2011
then
uu.fluxcount
else
0end)as
year_2011
from (
select
roadno,
year
(squaddate)
asyear
,sum
(fluxcount)
asfluxcount
from
tb_adfluxcolt
where
squaddate
between
'2009-01-01'
and'2011-12-31'
andoiflag=0
group
byroadno,
year
(squaddate)
) uu,(
select
distinct
roadno,roadname
from
tb_road
where
status
=0and
level
in(0,1)
androadname
notlike
'%南部快速
圖1db 查詢分析器中輸入要執行的case when語句
圖2db 查詢分析器執行case when語句
圖3db query analyzer 中輸入要執行的case when語句
圖4db query analyzer 執行case when語句
3
brioquery
來實現維度轉換
在資料倉儲工具中,brioquery提供了比較強大的資料展現功能,能方便地實現上面的維度轉換。
圖5brioquery資料表 vehsm
圖6brioquery執行查詢後的結果
圖7brioquery維度轉換後的結果
但對於大資料量表的維度轉換來說,則幾乎無法完成,筆者在中文核心刊物《電信科學》2023年11期《廣東電信公話200專用話機話務動態分析系統的構建》文章中,詳細地介紹了「廣東電信公話200專用話機話務動態分析系統」中是如何實現這一點的,這個話務動態系統是自己以前在廣東省電信****工作的時候獨自開發的,有興趣的話,可以看
本人的csdn部落格的博文:
「廣東電信公話200專用話機話務動態分析系統的構建」
/article/details/
7691403
軟體開發高手須掌握的4大sql精髓語句系列:
軟體開發高手須掌握的4大sql精髓語句(四)
/article/details/8050612
軟體開發高手須掌握的4大sql精髓語句(三)
/article/details/8015093
軟體開發高手須掌握的4大sql精髓語句(二)
/article/details/8003558
軟體開發高手須掌握的4大sql精髓語句(一)
/article/details/7969385
/article/details/7192368
《db 查詢分析器》使用技巧 系列:
《db 查詢分析器》使用技巧之(一)
/article/details/7189174
《db 查詢分析器》使用技巧之(二)
/article/details/7189176
《db 查詢分析器》使用技巧之(三)
/article/details/7192402
《db 查詢分析器》使用技巧之(四)
/article/details/7195059
《db 查詢分析器》使用技巧之(五)
/article/details/7196846
《db 查詢分析器》使用技巧之(六)
/article/details/7164432
《db 查詢分析器》使用技巧之(七)
/article/details/7197934
軟體開發高手必須掌握的4大SQL精髓語句(一)
軟體開發高手必須掌握的4大sql精髓語句 一 馬根峰 廣東聯合電子收費股份 廣州 510300 作者部落格 csdn部落格 qq空間 0 引言隨著計算機在社會各領域應用的深入,軟體開發人員不得不面臨著或多或少的資料處理 資料庫訪問。在sql structured query language 語言d...
掌握軟體開發的第一性原理
構建自己的技術知識體系很重要。下述情況存在 乙個程式設計師在剛掌握某乙個技術後,又出現乙個新的技術,還得再次費大力氣學習。但是如果擁有了自己的技術體系,那麼在面對乙個新技術時,就會更容易地掌握它。我們需要知道每乙個基礎技術方向中的最關鍵的技術原理,明白這些原理是如何和我們的日常開發工作發生關係的。比...
軟體開發的六大階段
第一階段 調研階段 本階段我們將組成企業專案調研組到企業進行現場調研,企業也部分需組織相應人員進行配合。整個調研工作將歷時三星期到乙個月左右時間。調研內容按以下方面進行。1 公司整體情況調研 目的 對企業的業務狀況,組織結構,企業文化,發展戰略進行仔細了解,從整體上對企業進行把握。2 oa系統調研 ...