這裡有兩張表,一張是錯誤類別表(ac_dict_option),另外一張是錯誤資訊表(mr_meterdata)分別需要統計基礎資訊表中』性質變更』,『正常』,'霧珠』三種狀態的裝置數量,在group by 之後使用pivot 進行行列的變換.
select
*from
( select
*from
(select
meter_error_result,
"count" (1) numb
from
mr_meterdata
group by
meter_error_result
) pivot (
max (numb) for meter_error_result in (
'性質變更' as i_xingzhibgld))
), (
select
* from
(select
label,
numb
from
(select
option_value,
label
from
ac_dict_option
where
dict_type = 'mr_reading_status'
) a,
(select
current_meter_state,
"count" (1) numb
from
mr_meterdata
group by
current_meter_state
) bwhere
a .option_value = b.current_meter_state
) pivot (
max (numb) for label in ('正常' as i_zhengchangzt,'霧珠'as wz)))
結果圖
pivot 中in裡面只能寫死,無法寫入動態的引數.倒是可以用動態sql的方式來實現,不過用起來感覺不太好,暫時還沒有很好的解決方法
oracle的列轉行
首先建立測試環境 create table test1 user account varchar2 100 signup date date,user email varchar2 100 friend1 email varchar2 100 friend2 email varchar2 100 f...
oracle列轉行的問題
今天群裡市討論乙個列轉行的問題,開始沒有一點頭緒的,後來有位大哥說到是列轉行的問題,好像以前看到過就沒沒有仔細去看,又查了下je裡面的貼子,找到了解決的辦法如下 現有兩張表,分別為 a table,b table 分別儲存資料如下 a table id name 1 zhang 2 li 3 wan...
oracle行轉列 列轉行
一 行轉列 需要將如下格式 轉換為 這就是最常見的行轉列,主要原理是利用decode函式 聚集函式 sum 結合group by分組實現的 create table test id varchar2 255 primary key not null,name varchar2 255 course ...