動態固定行轉列
需求要看最近7天新增評論數,而且每天都要查一次
SQL不復雜
查詢結果:
但是需求要橫著看資料。
這塊一般都是 固定行數 行轉列 處理,但是每天的日期是變化的,行轉列的值不能寫死.
這樣就得用數字輔助表過渡一下。
查詢結果:
但是這樣匯出的時候,沒有帶具體的日期資訊。
看著又不直觀了。
所以再稍作修改。
查詢結果:
妥了
SQL不復雜
-
SELECT to_char(createtime,'yyyy-mm-dd') createtime,count(*) c
-
FROM
-
mvbox_space.user_comment
-
where createtime>=trunc(sysdate - interval '7' day)
-
and createtime<trunc(sysdate)
- group by to_char(createtime,'yyyy-mm-dd')
但是需求要橫著看資料。
這塊一般都是 固定行數 行轉列 處理,但是每天的日期是變化的,行轉列的值不能寫死.
這樣就得用數字輔助表過渡一下。
-
select
-
max(case when lv=1 then nvl(t2.c,0) else null end) || '' c,
-
max(case when lv=2 then nvl(t2.c,0) else null end) || '' c,
-
max(case when lv=3 then nvl(t2.c,0) else null end) || '' c,
-
max(case when lv=4 then nvl(t2.c,0) else null end) || '' c,
-
max(case when lv=5 then nvl(t2.c,0) else null end) || '' c,
-
max(case when lv=6 then nvl(t2.c,0) else null end) || '' c,
-
max(case when lv=7 then nvl(t2.c,0) else null end) || '' c
-
from (
-
select to_char(trunc(sysdate)-numtodsinterval(level, 'day'),'yyyy-mm-dd') dt,level lv from dual connect by level <=7
-
) t1
-
left join(
-
SELECT to_char(createtime,'yyyy-mm-dd') createtime,count(*) c
-
FROM
-
mvbox_space.user_comment
-
where createtime>=trunc(sysdate - interval '7' day)
-
and createtime<trunc(sysdate)
-
group by to_char(createtime,'yyyy-mm-dd')
- ) t2 on (t1.dt=t2.createtime);
但是這樣匯出的時候,沒有帶具體的日期資訊。
看著又不直觀了。
所以再稍作修改。
-
select
-
max(case when level=1 then to_char(trunc(sysdate)-numtodsinterval(level, 'day'),'yyyy-mm-dd') else null end) || '' c,
-
max(case when level=2 then to_char(trunc(sysdate)-numtodsinterval(level, 'day'),'yyyy-mm-dd') else null end) || '' c,
-
max(case when level=3 then to_char(trunc(sysdate)-numtodsinterval(level, 'day'),'yyyy-mm-dd') else null end) || '' c,
-
max(case when level=4 then to_char(trunc(sysdate)-numtodsinterval(level, 'day'),'yyyy-mm-dd') else null end) || '' c,
-
max(case when level=5 then to_char(trunc(sysdate)-numtodsinterval(level, 'day'),'yyyy-mm-dd') else null end) || '' c,
-
max(case when level=6 then to_char(trunc(sysdate)-numtodsinterval(level, 'day'),'yyyy-mm-dd') else null end) || '' c,
-
max(case when level=7 then to_char(trunc(sysdate)-numtodsinterval(level, 'day'),'yyyy-mm-dd') else null end) || '' c
-
from dual connect by level <=7
-
union all
-
select
-
max(case when lv=1 then nvl(t2.c,0) else null end) || '' c,
-
max(case when lv=2 then nvl(t2.c,0) else null end) || '' c,
-
max(case when lv=3 then nvl(t2.c,0) else null end) || '' c,
-
max(case when lv=4 then nvl(t2.c,0) else null end) || '' c,
-
max(case when lv=5 then nvl(t2.c,0) else null end) || '' c,
-
max(case when lv=6 then nvl(t2.c,0) else null end) || '' c,
-
max(case when lv=7 then nvl(t2.c,0) else null end) || '' c
-
from (
-
select to_char(trunc(sysdate)-numtodsinterval(level, 'day'),'yyyy-mm-dd') dt,level lv from dual connect by level <=7
-
) t1
-
left join(
-
SELECT to_char(createtime,'yyyy-mm-dd') createtime,count(*) c
-
FROM
-
mvbox_space.user_comment
-
where createtime>=trunc(sysdate - interval '7' day)
-
and createtime<trunc(sysdate)
-
group by to_char(createtime,'yyyy-mm-dd')
-
) t2 on (t1.dt=t2.createtime)
- ;
妥了
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-2144381/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 動態行轉列
- 怎樣實現動態列報表,也就是列數不固定的報表?
- Excel實現動態行轉列(資料透視表)Excel
- elementui 當表格有固定列,拖動條在固定列的範圍內時拖拽不動UI
- 動態陣列介紹----Delphi (轉)陣列
- SQL 行轉列,列轉行SQL
- Mysql - 行轉列、列轉行MySql
- RDLC 動態列
- 動態陣列陣列
- js 固定表頭及固定列的jsJS
- 動態生成一個m行n列的表格
- hive經典案列--top N(行轉列\列轉行)Hive
- Oracle手動固定SQL執行計劃OracleSQL
- 建立動態陣列陣列
- win10有些程式自動固定在工作列怎麼辦_win10系統程式自動固定在工作列如何取消Win10
- oracle 11g的行轉列、列轉行Oracle
- sql的行轉列(PIVOT)與列轉行(UNPIVOT)SQL
- 直接用 java 命令列動態生成jpg檔案 (轉)Java命令列
- 使用動態SQL語句實現簡單的行列轉置(動態產生列)SQL
- AutoLayout 實現固定寬度動態高度的 ScrollViewView
- SQL列轉行SQL
- mysql列轉行MySql
- oracle 列轉行Oracle
- postgresql 列轉行SQL
- mysql 行轉列MySql
- oracle列轉行Oracle
- List介面(動態陣列)陣列
- 2-7 陣列:動態陣列陣列
- Oracle行轉列、列轉行的Sql語句總結OracleSQL
- UltraEdit 列操作及列轉行
- 線上直播原始碼,JS動態效果之,側邊欄滾動固定效果原始碼JS
- 陣列004 動態建立一維陣列陣列
- csii_根據acct表同一個acctnbr(列轉行)動態sql_儲存過程SQL儲存過程
- 動態執行緒池在轉轉平臺的實踐執行緒
- 手動實現ArrayList動態陣列陣列
- javascript動態建立指定行與列table表格程式碼例項JavaScript
- oracle行列轉換-行轉列Oracle
- oracle行列轉換-列轉行Oracle