<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        mysql行轉列利用casewhen_MySQL

        來源:懂視網 責編:小采 時間:2020-11-09 20:06:43
        文檔

        mysql行轉列利用casewhen_MySQL

        mysql行轉列利用casewhen_MySQL: CREATE TABLE bill ( id CHAR(36) NOT NULL, customer INT(255) NULL DEFAULT NULL COMMENT ‘顧客’, shop INT(255) NULL DEFAULT NULL COMMENT ‘消費店鋪’, money DECIMAL(
        推薦度:
        導讀mysql行轉列利用casewhen_MySQL: CREATE TABLE bill ( id CHAR(36) NOT NULL, customer INT(255) NULL DEFAULT NULL COMMENT ‘顧客’, shop INT(255) NULL DEFAULT NULL COMMENT ‘消費店鋪’, money DECIMAL(

        CREATE TABLE bill (
        id CHAR(36) NOT NULL,
        customer INT(255) NULL DEFAULT NULL COMMENT ‘顧客’,
        shop INT(255) NULL DEFAULT NULL COMMENT ‘消費店鋪’,
        money DECIMAL(10,2) NULL DEFAULT NULL COMMENT ‘花費’,
        type INT(255) NULL DEFAULT NULL COMMENT ‘類型 0’,
        PRIMARY KEY (id)
        )
        COLLATE=’utf8_general_ci’
        ENGINE=InnoDB
        ;
        INSERT INTO bill (id, customer, shop, money, type) VALUES (‘117f1a3c-ae68-42de-aa29-b9679a9a79f8’, 68, 9, 100.00, 1);
        INSERT INTO bill (id, customer, shop, money, type) VALUES (‘1606dd9a-5e1b-4bb6-9641-7508587aab56’, NULL, 9, 100.00, 1);
        INSERT INTO bill (id, customer, shop, money, type) VALUES (‘649d86ff-0271-4799-bc3c-173514f40f7c’, NULL, 9, 300.00, 1);
        INSERT INTO bill (id, customer, shop, money, type) VALUES (‘6d502fb6-9664-4f0f-8e2d-2fc9e21202b3’, 68, 9, 100.00, 1);
        INSERT INTO bill (id, customer, shop, money, type) VALUES (‘7036ba44-8143-4a5b-802f-522b39253572’, 68, 9, 100.00, 1);
        INSERT INTO bill (id, customer, shop, money, type) VALUES (‘7bcb427f-0eb1-4aa7-811c-997d7dffecb1’, 68, 9, 100.00, 3);
        INSERT INTO bill (id, customer, shop, money, type) VALUES (‘8043bd41-54c9-43d1-bf4a-def04e744343’, 68, 16, 180.00, 1);
        INSERT INTO bill (id, customer, shop, money, type) VALUES (‘8fbbcc6c-fcb0-4e95-bfd6-19d2e895694f’, NULL, 9, 200.00, 1);
        INSERT INTO bill (id, customer, shop, money, type) VALUES (‘94fa7e96-ae4a-423e-9c18-069adf601822’, NULL, 9, 100.00, 1);
        INSERT INTO bill (id, customer, shop, money, type) VALUES (‘a8388be4-3862-41ca-aa0a-867cb9c9966b’, 68, 9, 0.00, 6);
        INSERT INTO bill (id, customer, shop, money, type) VALUES (‘ec6713c6-4460-44f1-8f32-d4c409571855’, 68, 9, 100.00, 1);
        
        CREATE TABLE card_model (
        id CHAR(36) NOT NULL,
        name VARCHAR(255) NULL DEFAULT NULL,
        shop INT(255) NULL DEFAULT NULL,
        v1 DECIMAL(10,2) NULL DEFAULT NULL COMMENT ‘參數1’,
        type INT(255) NULL DEFAULT NULL,
        PRIMARY KEY (id)
        )
        COLLATE=’utf8_general_ci’
        ENGINE=InnoDB
        ;
        INSERT INTO card_model (id, name, shop, v1, type) VALUES (‘af7b7105-b3d0-4552-86a2-f187f4cbaabd’, ‘wedf’, 9, 100.00, 1);
        INSERT INTO card_model (id, name, shop, v1, type) VALUES (‘d7b10362-d189-440b-9d7a-72465078c066’, ‘frm’, 9, 200.00, 2);
        

        希望得到類似這種的。
        其中type1是bill表中type=’1’的所有的money的和,其中type2是bill表中type=’2’的所有的money的和,card_model表中所有v1的數據的和全部為’card’類
        首先分析:
        1、按店鋪分組,要分別得到他們的和
        第二張圖(http://img.blog.csdn.net/20150828214433916)
        select IFNULL(sum(b.money),0) money,shop,’type1’ type_test from bill b where b.type=1 group by b.shop
        union
        select IFNULL(sum(b.money),0) money,shop,’type2’ type_test from bill b where b.type=2 group by b.shop
        union
        select IFNULL(sum(b.v1),0) money,shop,’card’ type_test from card_model b group by b.shop
        從數據看沒有type2的數據。
        使用IFNULL是防止產生null結果,利用別名money,type_test使其獲得相同的列不會報錯
        2、怎樣將type1和card還有一個type2轉化為列即第一張圖
        利用case when

        select shop ‘店鋪’,
        sum((case type_test when ‘type1’ then money else 0 end)) ‘type1’,
        sum((case type_test when ‘type2’ then money else 0 end)) ‘type2’,
        sum((case type_test when ‘card’ then money else 0 end)) ‘card’,
        sum(money) ‘總和’
        from(
        select IFNULL(sum(b.money),0) money,shop,’type1’ type_test from bill b where b.type=1 group by b.shop
        union
        select IFNULL(sum(b.money),0) money,shop,’type2’ type_test from bill b where b.type=2 group by b.shop
        union
        select IFNULL(sum(b.v1),0) money,shop,’card’ type_test from card_model b group by b.shop
        )a
        group by shop


        這里利用case when 和別名type_test判斷再取別名得到想要的結果,最后按shop分組。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        mysql行轉列利用casewhen_MySQL

        mysql行轉列利用casewhen_MySQL: CREATE TABLE bill ( id CHAR(36) NOT NULL, customer INT(255) NULL DEFAULT NULL COMMENT ‘顧客’, shop INT(255) NULL DEFAULT NULL COMMENT ‘消費店鋪’, money DECIMAL(
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲AV无一区二区三区久久| 中文字幕第一页亚洲| 久久久久亚洲精品日久生情| 黄色片免费在线观看| 亚洲欧洲日产国码无码网站| 日韩精品无码免费专区网站 | 四虎免费在线观看| 亚洲愉拍一区二区三区| 成年女人18级毛片毛片免费| 亚洲字幕AV一区二区三区四区| 最近最好的中文字幕2019免费 | 免费观看国产小粉嫩喷水| 水蜜桃视频在线观看免费| 亚洲sm另类一区二区三区| 国产精品公开免费视频| 一级特级aaaa毛片免费观看| 亚洲尤码不卡AV麻豆| 污视频在线免费观看| 亚洲va精品中文字幕| 国产伦一区二区三区免费 | 亚洲av无码不卡久久| 国产大片91精品免费看3| 一级特黄a大片免费| 亚洲网址在线观看你懂的| 成人免费毛片内射美女-百度| 亚洲AV无码AV吞精久久| 亚洲人成无码网WWW| 99re6免费视频| 久久亚洲欧美国产精品| 久久精品亚洲男人的天堂 | 岛国片在线免费观看| 无码毛片一区二区三区视频免费播放| 亚洲午夜国产精品无码| A在线观看免费网站大全| 日韩在线观看视频免费| 亚洲人成影院在线| 国产一级大片免费看| 免费污视频在线观看| 国产亚洲人成在线影院| 亚洲天堂中文资源| 免费一级毛片在播放视频|