日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了列名稱上的MySQL透視表日期的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我一直在努力改造這張桌子:

 Date         Table       Size in MB
------------  ----------- -----------
2016-09-14    table1      1.02
2016-09-15    table1      6.03        
2016-09-14    table2      120.0       
2016-09-15    table2      150.0       
2016-09-14    table3      50.0        
2016-09-15    table3      52.0        

進(jìn)入:

Table        2016-09-14   2016-09-15   DIFF
-----------  -----------  -----------  -------
table1       1.02         6.03          5.01
table2       120.0        150.0         30.0
table3       50.0         52.0          2.0

透視表形成原始表,但將日期字段放入列名稱中作為MB列的大小,并在可能的情況下在最后一列上計算它們之間的差異。

到目前為止,我可以做到這一點(diǎn)

Table       Date1        Date2       
----------- -----------  ----------- 
table1      2016-09-14   2016-09-15
table2      2016-09-14   2016-09-15
table3      2016-09-14   2016-09-15

使用上一篇關(guān)于透視表的文章中的代碼

select `Table`,
  max(case when rownum = 1 then date end) Date1,
  max(case when rownum = 2 then date end) Date2
from
(
  select table_name AS `Table`,
    date,round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`,
    @row:=if(@prev=table_name, @row,0) + 1 as rownum,
    @prev:=table_name 
  FROM DBA_DB.table_growth_history, (SELECT @row:=0, @prev:=null) r
  order by table_name, date
) s
group by table_name
order by table_name, date

不是我想要的,但也許更近了一步。我需要專家的幫助。我很感激你的建議。謝謝

推薦答案

只能進(jìn)行條件聚合:

select table_name,
       max(case when date = '2016-09-14' then round(((data_length + index_length) / 1024 / 1024), 2) end) as size_20160915,
       max(case when date = '2016-09-15' then round(((data_length + index_length) / 1024 / 1024), 2) end) as size_20160916,
       (max(case when date = '2016-09-15' then round(((data_length + index_length) / 1024 / 1024), 2) end) -
        max(case when date = '2016-09-14' then round(((data_length + index_length) / 1024 / 1024), 2) end)
       ) as diff
from DBA_DB.table_growth_history t
where date in ('2016-09-14', '2016-09-15')
group by table_name;

這篇關(guān)于列名稱上的MySQL透視表日期的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標(biāo)簽:errorMySQLPivottabledatesoncolumnname exception IT資訊 MySQL pivot-table SQ
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定