軟體開發高手必須掌握的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精髓語句 一 馬根峰 廣東聯合電子收費股份 廣州 510300 作者部落格 csdn部落格 qq空間 0 引言隨著計算機在社會各領域應用的深入,軟體開發人員不得不面臨著或多或少的資料處理 資料庫訪問。在sql structured query language 語言dm...
軟體開發必須的文件
軟體 文件 程式 資料。我認為文件是軟體的核心。沒有文件,開發的程式將會很粗糙,而且難於維護,這樣的軟體是沒有生命力的。文件是依據軟體的階段而產生的。根據軟體開發的幾個階段 專案開發計畫,軟體需求定義,軟體總體設計,軟體編碼設計,軟體測試計畫,軟體執行與維護。文件階段 可行性研究,專案開發計畫,軟體...
嵌入式軟體開發 必須掌握的知識點(二)
1 嵌入式系統的主要組成部分 1 硬體裝置 2 嵌入式作業系統 3 應用軟體 2 一條語句實現 判斷乙個數x為2的 n 次冪 if x x 1 0 3 linux系統的裝置分類 1 字元裝置 2 塊裝置 3 網路裝置 4 c語言運算子優先順序 同一優先順序的運算子,運算次序由結合方向所決定。優先順序...