oracle列轉行操作

2021-09-03 01:37:11 字數 1134 閱讀 9423

這裡有兩張表,一張是錯誤類別表(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 ...