好友
阅读权限 10
听众
最后登录 1970-1-1
hppan
发表于 2021-8-25 11:22
50 吾爱币
本帖最后由 hppan 于 2021-8-25 11:27 编辑
求按2-6月分组的数据以及环比数据(4列,当下数据的份和总数,以及同比数据的月份和总数)
查询结果示例:
以下为示例数据
SET NAMES utf8mb4;
-- ----------------------------
-- Table structure for sales_basic
-- ----------------------------
CREATE TABLE `sales_basic` (
`地区` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`销售员` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`产品类型` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`产品` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`销量` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`日期` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 58 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sales_basic
-- ----------------------------
INSERT INTO `sales_basic` VALUES ('浙江', '陈苹', '家电', '电视', '220.0', '20090112', 58);
INSERT INTO `sales_basic` VALUES ('浙江', '赵小米', '家电', '电视', '180.0', '20090112', 59);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090112', 60);
INSERT INTO `sales_basic` VALUES ('江苏', '丁健', '数码产品', '数码相机', '635.0', '20090112', 61);
INSERT INTO `sales_basic` VALUES ('浙江', '周亚杰', '数码产品', '数码相机', '944.0', '20090112', 62);
INSERT INTO `sales_basic` VALUES ('江苏', '陈羽', '家电', '电冰箱', '234.0', '20090112', 63);
INSERT INTO `sales_basic` VALUES ('浙江', '陈苹', '家电', '电视', '220.0', '20090112', 64);
INSERT INTO `sales_basic` VALUES ('浙江', '赵小米', '家电', '电视', '180.0', '20090112', 65);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090112', 66);
INSERT INTO `sales_basic` VALUES ('江苏', '丁健', '数码产品', '数码相机', '635.0', '20090112', 67);
INSERT INTO `sales_basic` VALUES ('浙江', '周亚杰', '数码产品', '数码相机', '944.0', '20090112', 68);
INSERT INTO `sales_basic` VALUES ('江苏', '陈羽', '家电', '电冰箱', '234.0', '20090112', 69);
INSERT INTO `sales_basic` VALUES ('浙江', '陈苹', '家电', '电视', '220.0', '20090212', 70);
INSERT INTO `sales_basic` VALUES ('浙江', '赵小米', '家电', '电视', '180.0', '20090212', 71);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090212', 72);
INSERT INTO `sales_basic` VALUES ('江苏', '丁健', '数码产品', '数码相机', '635.0', '20090212', 73);
INSERT INTO `sales_basic` VALUES ('浙江', '周亚杰', '数码产品', '数码相机', '944.0', '20090212', 74);
INSERT INTO `sales_basic` VALUES ('江苏', '陈羽', '家电', '电冰箱', '234.0', '20090212', 75);
INSERT INTO `sales_basic` VALUES ('浙江', '陈苹', '家电', '电视', '220.0', '20090212', 76);
INSERT INTO `sales_basic` VALUES ('浙江', '赵小米', '家电', '电视', '180.0', '20090212', 77);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090212', 78);
INSERT INTO `sales_basic` VALUES ('浙江', '陈苹', '家电', '电视', '220.0', '20090312', 79);
INSERT INTO `sales_basic` VALUES ('浙江', '赵小米', '家电', '电视', '180.0', '20090312', 80);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090312', 81);
INSERT INTO `sales_basic` VALUES ('江苏', '丁健', '数码产品', '数码相机', '635.0', '20090312', 82);
INSERT INTO `sales_basic` VALUES ('浙江', '周亚杰', '数码产品', '数码相机', '944.0', '20090312', 83);
INSERT INTO `sales_basic` VALUES ('江苏', '陈羽', '家电', '电冰箱', '234.0', '20090312', 84);
INSERT INTO `sales_basic` VALUES ('浙江', '陈苹', '家电', '电视', '220.0', '20090312', 85);
INSERT INTO `sales_basic` VALUES ('浙江', '赵小米', '家电', '电视', '180.0', '20090312', 86);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090312', 87);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090312', 88);
INSERT INTO `sales_basic` VALUES ('江苏', '丁健', '数码产品', '数码相机', '635.0', '20090312', 89);
INSERT INTO `sales_basic` VALUES ('浙江', '周亚杰', '数码产品', '数码相机', '944.0', '20090312', 90);
INSERT INTO `sales_basic` VALUES ('江苏', '陈羽', '家电', '电冰箱', '234.0', '20090312', 91);
INSERT INTO `sales_basic` VALUES ('浙江', '陈苹', '家电', '电视', '220.0', '20090312', 92);
INSERT INTO `sales_basic` VALUES ('浙江', '赵小米', '家电', '电视', '180.0', '20090312', 93);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090312', 94);
INSERT INTO `sales_basic` VALUES ('浙江', '陈苹', '家电', '电视', '220.0', '20090412', 95);
INSERT INTO `sales_basic` VALUES ('浙江', '赵小米', '家电', '电视', '180.0', '20090412', 96);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090412', 97);
INSERT INTO `sales_basic` VALUES ('江苏', '丁健', '数码产品', '数码相机', '635.0', '20090412', 98);
INSERT INTO `sales_basic` VALUES ('浙江', '周亚杰', '数码产品', '数码相机', '944.0', '20090412', 99);
INSERT INTO `sales_basic` VALUES ('江苏', '陈羽', '家电', '电冰箱', '234.0', '20090412', 100);
INSERT INTO `sales_basic` VALUES ('浙江', '陈苹', '家电', '电视', '220.0', '20090412', 101);
INSERT INTO `sales_basic` VALUES ('浙江', '赵小米', '家电', '电视', '180.0', '20090412', 102);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090412', 103);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090412', 104);
INSERT INTO `sales_basic` VALUES ('江苏', '丁健', '数码产品', '数码相机', '635.0', '20090412', 105);
INSERT INTO `sales_basic` VALUES ('浙江', '周亚杰', '数码产品', '数码相机', '944.0', '20090412', 106);
INSERT INTO `sales_basic` VALUES ('江苏', '陈羽', '家电', '电冰箱', '234.0', '20090412', 107);
INSERT INTO `sales_basic` VALUES ('浙江', '陈苹', '家电', '电视', '220.0', '20090412', 108);
INSERT INTO `sales_basic` VALUES ('浙江', '赵小米', '家电', '电视', '180.0', '20090412', 109);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090412', 110);
INSERT INTO `sales_basic` VALUES ('浙江', '陈苹', '家电', '电视', '220.0', '20090512', 111);
INSERT INTO `sales_basic` VALUES ('浙江', '赵小米', '家电', '电视', '180.0', '20090512', 112);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090512', 113);
INSERT INTO `sales_basic` VALUES ('江苏', '丁健', '数码产品', '数码相机', '635.0', '20090512', 114);
INSERT INTO `sales_basic` VALUES ('浙江', '周亚杰', '数码产品', '数码相机', '944.0', '20090512', 115);
INSERT INTO `sales_basic` VALUES ('江苏', '陈羽', '家电', '电冰箱', '234.0', '20090512', 116);
INSERT INTO `sales_basic` VALUES ('浙江', '陈苹', '家电', '电视', '220.0', '20090512', 117);
INSERT INTO `sales_basic` VALUES ('浙江', '赵小米', '家电', '电视', '180.0', '20090512', 118);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090512', 119);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090512', 120);
INSERT INTO `sales_basic` VALUES ('江苏', '丁健', '数码产品', '数码相机', '635.0', '20090512', 121);
INSERT INTO `sales_basic` VALUES ('浙江', '周亚杰', '数码产品', '数码相机', '944.0', '20090512', 122);
INSERT INTO `sales_basic` VALUES ('江苏', '陈羽', '家电', '电冰箱', '234.0', '20090512', 123);
INSERT INTO `sales_basic` VALUES ('浙江', '陈苹', '家电', '电视', '220.0', '20090612', 124);
INSERT INTO `sales_basic` VALUES ('浙江', '赵小米', '家电', '电视', '180.0', '20090612', 125);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090612', 126);
INSERT INTO `sales_basic` VALUES ('江苏', '丁健', '数码产品', '数码相机', '635.0', '20090612', 127);
INSERT INTO `sales_basic` VALUES ('浙江', '周亚杰', '数码产品', '数码相机', '944.0', '20090612', 128);
INSERT INTO `sales_basic` VALUES ('江苏', '陈羽', '家电', '电冰箱', '234.0', '20090612', 129);
INSERT INTO `sales_basic` VALUES ('浙江', '陈苹', '家电', '电视', '220.0', '20090612', 130);
INSERT INTO `sales_basic` VALUES ('浙江', '赵小米', '家电', '电视', '180.0', '20090612', 131);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090612', 132);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090612', 133);
INSERT INTO `sales_basic` VALUES ('江苏', '丁健', '数码产品', '数码相机', '635.0', '20090612', 134);
INSERT INTO `sales_basic` VALUES ('浙江', '周亚杰', '数码产品', '数码相机', '944.0', '20090612', 135);
INSERT INTO `sales_basic` VALUES ('江苏', '陈羽', '家电', '电冰箱', '234.0', '20090612', 136);
INSERT INTO `sales_basic` VALUES ('浙江', '陈苹', '家电', '电视', '220.0', '20090612', 137);
INSERT INTO `sales_basic` VALUES ('浙江', '赵小米', '家电', '电视', '180.0', '20090612', 138);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090612', 139);
INSERT INTO `sales_basic` VALUES ('江苏', '丁健', '数码产品', '数码相机', '635.0', '20090612', 140);
INSERT INTO `sales_basic` VALUES ('浙江', '周亚杰', '数码产品', '数码相机', '944.0', '20090612', 141);
INSERT INTO `sales_basic` VALUES ('江苏', '陈羽', '家电', '电冰箱', '234.0', '20090612', 142);
INSERT INTO `sales_basic` VALUES ('浙江', '陈苹', '家电', '电视', '220.0', '20090612', 143);
INSERT INTO `sales_basic` VALUES ('浙江', '赵小米', '家电', '电视', '180.0', '20090612', 144);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090612', 145);
INSERT INTO `sales_basic` VALUES ('江苏', '安娜', '数码产品', '数码相机', '123.0', '20090612', 146);
INSERT INTO `sales_basic` VALUES ('江苏', '丁健', '数码产品', '数码相机', '635.0', '20090612', 147);
INSERT INTO `sales_basic` VALUES ('浙江', '周亚杰', '数码产品', '数码相机', '944.0', '20090612', 148);
INSERT INTO `sales_basic` VALUES ('江苏', '陈羽', '家电', '电冰箱', '234.0', '20090612', 149);
最佳答案
查看完整内容
个人觉得这个条件t.month - 1 = t1.month来进行环比,如果是以楼主的数据跟截图,确实是没问题,但如果有跨年日期的数据,那这个条件就没法查询出来了
这是优化后的写法(如果一定要存在一个月跟上一个月对比,感觉也没必要用到左连接,直接关联查询即可)
select t1.month '月份',t1.total '总数',t2.month '月份',t2.total '总数' from
(
SELECT SUBSTRING(`日期`,1,6) 'month',count(1) 'total' from sales_basic
group by ...