电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

mysql 行列轉換的示例代碼

瀏覽:6日期:2023-10-04 16:15:59
一、需求

我們有三張表,我們需要分類統計一段時間內抗生素的不同藥敏結果,即 report_item_drugs 表的 drugs_result, 在不同項目project_name 和不同抗生素 antibiotic_dict_name 下的占比,并將藥敏結果顯示在行上,效果如下:

mysql 行列轉換的示例代碼

三張原始表(僅取需要的字段示例),分別是:

報告表

mysql 行列轉換的示例代碼

項目表

mysql 行列轉換的示例代碼

抗生素表(藥敏結果drugs_result為一列值)

mysql 行列轉換的示例代碼

二、實現

1、按照項目、抗生素分組求出檢出的總數

SELECT A.project_name,A.antibiotic_dict_name,SUM(nums) AS 檢出總數FROM ( SELECT i.project_name,d.antibiotic_dict_name,d.drugs_result,COUNT(d.id) AS nums FROM `report` r RIGHT JOIN report_item i ON r.id=i.report_id RIGHT JOIN report_item_drugs d ON d.report_item_id=i.id WHERE r.report_status=2 AND r.add_date BETWEEN ’2020-01-01’ AND ’2020-12-30’GROUP BY i.project_id,d.antibiotic_dict_id,d.drugs_result ) A GROUP BY A.project_name,A.antibiotic_dict_name

mysql 行列轉換的示例代碼

2、按照項目、抗生素、藥敏結果求出不同藥敏結果數量

SELECT i.project_name,d.antibiotic_dict_name,IF(d.drugs_result<>’’, d.drugs_result, ’未填寫’) AS drugs_result,COUNT(d.id) AS 數量 FROM `report` rRIGHT JOIN report_item i ON r.id=i.report_idRIGHT JOIN report_item_drugs d ON d.report_item_id=i.idWHERE r.report_status=2 AND r.add_date BETWEEN ’2020-01-01’ AND ’2020-12-30’ GROUP BY i.project_id,d.antibiotic_dict_id,d.drugs_result

mysql 行列轉換的示例代碼

3、將兩個結果關聯到一起

SELECT BB.project_name,BB.antibiotic_dict_name,BB.drugs_result,BB.`數量`,AA.`檢出總數` FROM ( SELECT A.project_name,A.antibiotic_dict_name,SUM(nums) AS 檢出總數 FROM ( SELECT i.project_name,d.antibiotic_dict_name,d.drugs_result,COUNT(d.id) AS nums FROM `report` r RIGHT JOIN report_item i ON r.id=i.report_id RIGHT JOIN report_item_drugs d ON d.report_item_id=i.id WHERE r.report_status=2 AND r.add_date BETWEEN ’2020-01-01’ AND ’2020-12-30’ GROUP BY i.project_id,d.antibiotic_dict_id,d.drugs_result ) A GROUP BY A.project_name,A.antibiotic_dict_name) AA RIGHT JOIN ( SELECT i.project_name,d.antibiotic_dict_name,IF(d.drugs_result<>’’, d.drugs_result, ’未填寫’) AS drugs_result,COUNT(d.id) AS 數量 FROM `report` r RIGHT JOIN report_item i ON r.id=i.report_id RIGHT JOIN report_item_drugs d ON d.report_item_id=i.id WHERE r.report_status=2 AND r.add_date BETWEEN ’2020-01-01’ AND ’2020-12-30’ GROUP BY i.project_id,d.antibiotic_dict_id,d.drugs_result )BB ON AA.project_name=BB.project_name AND AA.antibiotic_dict_name=BB.antibiotic_dict_name WHERE AA.`檢出總數`<>’’

mysql 行列轉換的示例代碼

4、一般來說,到上一步不同藥敏數量和總數都有了,可以直接求比例了

但是,我們需要的是將藥敏顯示到行上,直接求比不符合需求,所以我們需要將列轉換為行

我們借助于case when實現行列轉換,并將藥敏結果根據字典轉為方便閱讀的漢字

mysql 行列轉換的示例代碼

SELECT C.project_name 項目名稱,C.antibiotic_dict_name 抗生素名稱,C.`檢出總數`, SUM(CASE C.`drugs_result` WHEN ’D’ THEN C.`數量` ELSE 0 END ) AS ’劑量依賴性敏感’, CONCAT(SUM(CASE C.`drugs_result` WHEN ’D’ THEN FORMAT(C.`數量`/C.`檢出總數`*100,2) ELSE 0 END),’%’) AS ’劑量依賴性敏感比率’, SUM(CASE C.`drugs_result` WHEN ’R’ THEN C.`數量` ELSE 0 END ) AS ’耐藥’, CONCAT(SUM(CASE C.`drugs_result` WHEN ’R’ THEN FORMAT(C.`數量`/C.`檢出總數`*100,2) ELSE 0 END),’%’) AS ’耐藥比率’, SUM(CASE C.`drugs_result` WHEN ’S’ THEN C.`數量` ELSE 0 END ) AS ’敏感’, CONCAT(SUM(CASE C.`drugs_result` WHEN ’S’ THEN FORMAT(C.`數量`/C.`檢出總數`*100,2) ELSE 0 END),’%’) AS ’敏感比率’, SUM(CASE C.`drugs_result` WHEN ’I’ THEN C.`數量` ELSE 0 END ) AS ’中介’, CONCAT(SUM(CASE C.`drugs_result` WHEN ’I’ THEN FORMAT(C.`數量`/C.`檢出總數`*100,2) ELSE 0 END),’%’) AS ’中介比率’, SUM(CASE C.`drugs_result` WHEN ’n1’ THEN C.`數量` ELSE 0 END ) AS ’非敏感’, CONCAT(SUM(CASE C.`drugs_result` WHEN ’n1’ THEN FORMAT(C.`數量`/C.`檢出總數`*100,2) ELSE 0 END),’%’) AS ’非敏感比率’, SUM(CASE C.`drugs_result` WHEN ’N’ THEN C.`數量` ELSE 0 END ) AS ’無’, CONCAT(SUM(CASE C.`drugs_result` WHEN ’N’ THEN FORMAT(C.`數量`/C.`檢出總數`*100,2) ELSE 0 END),’%’) AS ’無比率’, SUM(CASE C.`drugs_result` WHEN ’未填寫’ THEN C.`數量` ELSE 0 END ) AS ’未填寫’, CONCAT(SUM(CASE C.`drugs_result` WHEN ’未填寫’ THEN FORMAT(C.`數量`/C.`檢出總數`*100,2) ELSE 0 END),’%’) AS ’未填寫比率’FROM( SELECT BB.project_name,BB.antibiotic_dict_name,BB.drugs_result,BB.`數量`,AA.`檢出總數` FROM ( SELECT A.project_name,A.antibiotic_dict_name,SUM(nums) AS 檢出總數 FROM ( SELECT i.project_name,d.antibiotic_dict_name,d.drugs_result,COUNT(d.id) AS nums FROM `report` r RIGHT JOIN report_item i ON r.id=i.report_id RIGHT JOIN report_item_drugs d ON d.report_item_id=i.id WHERE r.report_status=2 AND r.add_date BETWEEN ’2020-01-01’ AND ’2020-12-30’ GROUP BY i.project_id,d.antibiotic_dict_id,d.drugs_result ) A GROUP BY A.project_name,A.antibiotic_dict_name) AA RIGHT JOIN ( SELECT i.project_name,d.antibiotic_dict_name,IF(d.drugs_result<>’’, d.drugs_result, ’未填寫’) AS drugs_result,COUNT(d.id) AS 數量 FROM `report` r RIGHT JOIN report_item i ON r.id=i.report_id RIGHT JOIN report_item_drugs d ON d.report_item_id=i.id WHERE r.report_status=2 AND r.add_date BETWEEN ’2020-01-01’ AND ’2020-12-30’ GROUP BY i.project_id,d.antibiotic_dict_id,d.drugs_result )BB ON AA.project_name=BB.project_name AND AA.antibiotic_dict_name=BB.antibiotic_dict_name WHERE AA.`檢出總數`<>’’) CGROUP BY C.project_name,C.antibiotic_dict_name;

5、查看結果,成功轉換

mysql 行列轉換的示例代碼

到此這篇關于mysql 行列轉換的示例代碼的文章就介紹到這了,更多相關mysql 行列轉換內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 无线遥控更衣吊篮_IC卡更衣吊篮_电动更衣吊篮配件_煤矿更衣吊篮-力得电子 | 丹佛斯变频器-Danfoss战略代理经销商-上海津信变频器有限公司 | 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | 济南侦探调查-济南调查取证-山东私家侦探-山东白豹调查咨询公司 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 活性炭-果壳木质煤质柱状粉状蜂窝活性炭厂家价格多少钱 | GEDORE扭力螺丝刀-GORDON防静电刷-CHEMTRONICS吸锡线-上海卓君电子有限公司 | 固诺家居-全屋定制十大品牌_整体衣柜木门橱柜招商加盟 | 搬运设备、起重设备、吊装设备—『龙海起重成套设备』 | 东莞ERP软件_广州云ERP_中山ERP_台湾工厂erp系统-广东顺景软件科技有限公司 | 常州企业采购平台_常州MRO采购公司_常州米孚机电设备有限公司 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 泡沫消防车_水罐消防车_湖北江南专用特种汽车有限公司 | 苏州注册公司_苏州代理记账_苏州工商注册_苏州代办公司-恒佳财税 | 智能交通网_智能交通系统_ITS_交通监控_卫星导航_智能交通行业 | 无线遥控更衣吊篮_IC卡更衣吊篮_电动更衣吊篮配件_煤矿更衣吊篮-力得电子 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 团建-拓展-拓展培训-拓展训练-户外拓展训练基地[无锡劲途] | 餐饮加盟网_特色餐饮连锁加盟店-餐饮加盟官网 | 全自动变压器变比组别测试仪-手持式直流电阻测试仪-上海来扬电气 | 东莞市踏板石餐饮管理有限公司_正宗桂林米粉_正宗桂林米粉加盟_桂林米粉加盟费-东莞市棒子桂林米粉 | 精密机械零件加工_CNC加工_精密加工_数控车床加工_精密机械加工_机械零部件加工厂 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | 餐饮加盟网_特色餐饮加盟店_餐饮连锁店加盟 | 安全阀_弹簧式安全阀_美标安全阀_工业冷冻安全阀厂家-中国·阿司米阀门有限公司 | 烟雾净化器-滤筒除尘器-防爆除尘器-除尘器厂家-东莞执信环保科技有限公司 | 企业微信scrm管理系统_客户关系管理平台_私域流量运营工具_CRM、ERP、OA软件-腾辉网络 | 自动检重秤-动态称重机-重量分选秤-苏州金钻称重设备系统开发有限公司 | 智能汉显全自动量热仪_微机全自动胶质层指数测定仪-鹤壁市科达仪器仪表有限公司 | 喷漆房_废气处理设备-湖北天地鑫环保设备有限公司 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 深圳市源和塑胶电子有限公司-首页 | 板框压滤机-隔膜压滤机-厢式压滤机生产厂家-禹州市君工机械设备有限公司 | 水篦子|雨篦子|镀锌格栅雨水篦子|不锈钢排水篦子|地下车库水箅子—安平县云航丝网制品厂 | 成都顶呱呱信息技术有限公司-贷款_个人贷款_银行贷款在线申请 - 成都贷款公司 | 济南网站建设|济南建网站|济南网站建设公司【济南腾飞网络】【荐】 | 盘古网络技术有限公司| 订做不锈钢_不锈钢定做加工厂_不锈钢非标定制-重庆侨峰金属加工厂 | 桨叶搅拌机_螺旋挤压/方盒旋切造粒机厂家-无锡市鸿诚输送机械有限公司 | 华中线缆有限公司-电缆厂|电缆厂家|电线电缆厂家 | 外观设计_设备外观设计_外观设计公司_产品外观设计_机械设备外观设计_东莞工业设计公司-意品深蓝 | 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 |