From bff75598824057ea132e93e460df74c9148609c2 Mon Sep 17 00:00:00 2001 From: wangxu Date: Wed, 8 Oct 2025 15:47:05 +0800 Subject: [PATCH] 1 --- 数据分析/v3/数据.sql | 541 +++++++++ 数据分析/v3/正式-处理.sql | 947 +++++++++++++++ .../v3/正式-查询-下单时间(算换货) - 副本.sql | 1017 +++++++++++++++++ .../v3/正式-查询-下单时间-old(不算换货).sql | 869 ++++++++++++++ 数据分析/v3/正式-查询-钱货两清时间.sql | 949 +++++++++++++++ 数据分析/v3/验证.sql | 633 ++++++++++ 需求/取数需求-IT.xlsx | Bin 10498 -> 14550 bytes 7 files changed, 4956 insertions(+) create mode 100644 数据分析/v3/数据.sql create mode 100644 数据分析/v3/正式-处理.sql create mode 100644 数据分析/v3/正式-查询-下单时间(算换货) - 副本.sql create mode 100644 数据分析/v3/正式-查询-下单时间-old(不算换货).sql create mode 100644 数据分析/v3/正式-查询-钱货两清时间.sql create mode 100644 数据分析/v3/验证.sql diff --git a/数据分析/v3/数据.sql b/数据分析/v3/数据.sql new file mode 100644 index 0000000..2641198 --- /dev/null +++ b/数据分析/v3/数据.sql @@ -0,0 +1,541 @@ +-- 自定义销售本地表 +CREATE TABLE audit_bi_pro.custom_online_sale_local +( + `source_system` String COMMENT '来源系统', + `order_date` String COMMENT '下单日期', + `brand_code` String COMMENT '品牌编码', + `order_time` String COMMENT '下单时间', + `system_order_no` String COMMENT '系统订单号', + `store_code` String COMMENT '店铺编码', + `store_name` String COMMENT '店铺名称', + `manual_order` String COMMENT '手工单', + `is_swap_order` String COMMENT '是否换货单', + `source_platform` String COMMENT '来源平台', + `platform_order_no` String COMMENT '平台订单号', + `nickname` String COMMENT '昵称', + `consignee_name` String COMMENT '收货人名称', + `consignee_tel` String COMMENT '收货人电话', + `consignee_add` String COMMENT '收货人地址', + `province` String COMMENT '省', + `city` String COMMENT '市', + `region` String COMMENT '区', + `pay_time` String COMMENT '付款时间', + `deliver_time` String COMMENT '发货时间', + `mgclear_time` String COMMENT '钱货两清时间', + `main_logistic_bill` String COMMENT '主物流号', + `carrier` String COMMENT '承运商', + `order_retail_amt` Decimal(18, 2) COMMENT '订单零售金额', + `order_settle_amt` Decimal(18, 2) COMMENT '订单结算金额', + `order_freight_amt` Decimal(18, 2) COMMENT '订单运费金额', + `goods_barcode` String COMMENT '商品条码', + `goods_qty` Int64 COMMENT '商品数量', + `goods_price` Decimal(18, 2) COMMENT '商品单价', + `goods_amt` Decimal(18, 2) COMMENT '订单商品均摊金额', + `is_gift` String COMMENT '是否赠品' +) +ENGINE = ReplicatedMergeTree('/clickhouse/tables/audit_bi_pro/custom_online_sale_local/{shard}', + '{replica}') +PARTITION BY toYYYYMM(toDate(order_date)) +ORDER BY system_order_no +SETTINGS index_granularity = 8192 +COMMENT '自定义电商销售'; + +TRUNCATE TABLE custom_online_sale_local; + +INSERT INTO custom_online_sale_local +SELECT + source_system, + order_date, + brand_code, + order_time, + system_order_no, + store_code, + store_name, + manual_order, + is_swap_order, + source_platform, + platform_order_no_new AS platform_order_no, + nickname, + consignee_name, + consignee_tel, + consignee_add, + province, + city, + region, + pay_time, + deliver_time, + mgclear_time, + main_logistic_bill, + carrier, + + toDecimal64(if(i < k, order_retail_amt_quotient, order_retail_amt_quotient + order_retail_amt_remainder), 2) / 100 AS order_retail_amt, + toDecimal64(if(i < k, order_settle_amt_quotient, order_settle_amt_quotient + order_settle_amt_remainder), 2) / 100 AS order_settle_amt, + toDecimal64(if(i < k, order_freight_amt_quotient, order_freight_amt_quotient + order_freight_amt_remainder), 2) / 100 AS order_freight_amt, + goods_barcode, + if(i > (k - goods_qty_remainder), goods_qty_div + 1, goods_qty_div) AS t, + goods_price, + toDecimal64(if(i < k, goods_amt_quotient, goods_amt_quotient + goods_amt_remainder), 2) / 100 AS goods_amt, + is_gift +FROM ( + SELECT + splitByChar(',', platform_order_no) AS platform_order_no_array, + length(platform_order_no_array) AS k, + toInt64(k) AS k_dec, + + source_system, + order_date, + brand_code, + order_time, + system_order_no, + store_code, + store_name, + manual_order, + is_swap_order, + source_platform, + nickname, + consignee_name, + consignee_tel, + consignee_add, + province, + city, + region, + pay_time, + deliver_time, + mgclear_time, + main_logistic_bill, + carrier, + + order_retail_amt * 100 AS order_retail_amt_cents, + (toInt64(order_retail_amt_cents) div k_dec) AS order_retail_amt_quotient, + (toInt64(order_retail_amt_cents) % k_dec) AS order_retail_amt_remainder, + + order_settle_amt * 100 AS order_settle_amt_cents, + (toInt64(order_settle_amt_cents) div k_dec) AS order_settle_amt_quotient, + (toInt64(order_settle_amt_cents) % k_dec) AS order_settle_amt_remainder, + + order_freight_amt * 100 AS order_freight_amt_cents, + (toInt64(order_freight_amt_cents) div k_dec) AS order_freight_amt_quotient, + (toInt64(order_freight_amt_cents) % k_dec) AS order_freight_amt_remainder, + + goods_barcode, + + (goods_qty div k_dec) AS goods_qty_div, + (goods_qty % k_dec) AS goods_qty_remainder, + + goods_price, + + goods_amt * 100 AS goods_amt_cents, + (toInt64(goods_amt_cents) div k_dec) AS goods_amt_quotient, + (toInt64(goods_amt_cents) % k_dec) AS goods_amt_remainder, + + is_gift + FROM dwd_trade_hkaudit_ecommerce_sale_mt + WHERE store_code IN ('DAA0','DAB7','DX01','DPL1','DPL2','DPH2','DPH1','DPH3','DPH4','DPH5','DPH6','DPHD','DPHH','DPHL','DPHP','DPHN','DPHM','DPHR','DPHS','DPHQ','DPHT','DPHU','DPHV','DPHW','DPHX','DPHY','DPH0','DPA1','DPA2','DPA3','DPA4','DPA5','DPA6','DCA0','DCA9','DCD5','DCA7','DCB1','DCC7','DCC3','DCC5','DCE7','DCB7','DCD2','DCB0','DCD8','DCA5','DCF3','DCF4','DCF2','DCF5','DCF6','DCF8','DCF9','DCF1','DCG1','DCG3','DCG4','DCG5','DCH1','DCG6','DCG7','DCC1','DCG8','DCG9','DCH2','DCH3','DCH4','DCH5','DCH6','DCH7','DCH8','DCH9','DCL1','DCL2','DCL3','DCL4','DCL5','DCL6','DCL8','DCJ1','DCL9','DCJ2','DCJ5','DCJ3','DCJ4','DCJ6','DCJ7','DCJ9','DCK1','DCK2','DCK4','DCK5','DCK3','DCK6','DCK7','DCK8','DCK9','DCM2','DCM7','DCM1','DCM3','DCM4','DCM5','DCN2','DCN3','DCM9','DCM6','DCN1','DCN4','DCN5','DCN6','DCP4','DCN8','DCN9','DCP1','DCP7','DCP2','DCP5','DCP6','DCP8','DCP9','DCQ2','DCQ3','DCQ4','DCQ5','DCP3','DCQ8','DCQ6','DCQ7','DCQ9','DCR1','DCR3','DCR2','DCR4','DCR5','DC01','DC02','DC04','DC05','DC06','DC07','DC08','DC09','DC0A','DC0B','DC0C','DC0D','DC0E','DC0F','DC0G','DC0H','DC0J','DC0K','DC0L','DC0M','DC0N','DC0P','DC0Q','DC0R','DC0S','DC0T','DC0V','DC0U','DCN7','DC0X','DC0W','DC0Y','DC0Z','DC10','DC11','DC13','DC12','DC14','DC15','DC16','DC1A','DC17','DC1B','DC1C','DC1E','DC1D','DC1F','DC1G','DC1Q','DC1H','DC1J','DC1K','DC1L','DC1M','DC1N','DC1P','DC1R','DC1T','DFA5','DFB0','DFB5','DFC8','DFG4','DFC0','DFG2','DFG7','DFG3','DFG1','DFB3','DFF9','DFF3','DFB9','DFG8','DFH2','DFH1','DFH3','DFH4','DFH6','DFJ1','DFJ2','DFJ3','DFJ4','DFJ5','DFJ9','DFJ7','DFK1','DFJ6','DFJ8','DFK3','DF04','DFK2','DF05','DF07','DF0G','DF0E','DF0H','DF0K','DF0M','DF0D','DF06','DF0Q','DF0P','DF0N','DF0R','DF0F','DF0W','DF0T','DF0V','DF0J','DF0X','DF12','DK05','DK03','DK01','DK02','DK06','DK04','DK09','DK08','DK0B','DK0C','DK0A','DK0F','DK0D','DK0E','DK0G','DK0K','DK0L','DK0H','DGA0','DGA3','DGA5','DGA2','DGB4','DGA4','DGB1','DGA8','DGC9','DGD1','DGD2','DGD4','DGC4','DGC2','DGD5','DGD6','DGC6','DGB9','DGC7','DGD7','DGD8','DGD9','DGE1','DGD3','DGE2','DGE6','DGE5','DGE7','DGF1','DGE8','DGE9','DGF2','DGF3','DGF4','DGF5','DGF6','DGF8','DGF7','DGF9','DGG1','DGG2','DGG3','DGG4','DGG5','DGG6','DGG8','DGG7','DGH1','DGH2','DGH8','DGH9','DGH4','DGH3','DGH5','DGH6','DGH7','DGJ5','DGJ2','DGJ3','DGJ4','DGJ7','DGJ8','DGJ9','DGJ6','DGK2','DGK3','DGK8','DGK9','DGK4','DGK1','DGK5','DGK6','DGL2','DGL3','DGK7','DGL1','DGL5','DGJ1','DGL8','DGL9','DGL4','DGM2','DGL6','DGL7','DGN2','DGM3','DGM4','DGM5','DGM1','DGM8','DG01','DGM9','DGM6','DGN1','DGM7','DG05','DG02','DG04','DG0A','DG03','DGN3','DG06','DG08','DG0C','DG09','DG0B','DG07','DG0E','DG0F','DG0G','DG0Q','DG0N','DG0H','DG0J','DG0K','DG0L','DG0U','DG0V','DG0M','DG0P','DG0R','DG0S','DG10','DG11','DG0T','DG0W','DG13','DG0X','DG0Y','DG14','DG15','DG0Z','DG12','DG17','DG18','DG1A','DG1B','DG19','DG16','DG1D','DG1E','DG1G','DG1H','DG1F','DG1C','DG1K','DG1L','DG1R','DG1S','DG1M','DG1J','DG1U','DG1Q','DG1T','DG1V','DG1W','DG1N','DG1P','DG1X','DG1Y','DG23','DG1Z','DG25','DG20','DG22','DG26','DG21','DG24','DG27','DG29','DG2A','DG2F','DG2G','DG2B','DG28','DG2C','DG2D','DG2J','DG2K','DG2E','DG2H','DG2M','DG2N','DG2Q','DG2R','DG2P','DG2L','DG2T','DG2U','DG2Z','DG2V','DG2S','DG2W','DG2X','DG35','DG36','DG2Y','DG31','DG32','DG33','DG3B','DG3C','DG34','DG37','DH1D','DH3U','DH4H','DH4U','DH5K','DH5R','DH5U','DH5V','DH5Z','DH6R','DH6V','DH6Z','DH7R','DH7V','DH7Z','DHJ7','H5LX','DH1A','DH1C','DH1E','DH1G','DH1H','DH1J','DH1K','DH1M','DH1P','DH1Z','DH2C','DH2F','DH2G','DH2H','DH2J','DH2K','DH2M','DH2N','DH2R','DH2S','DH2V','DH3A','DH3D','DH3F','DH3G','DH3J','DH3R','DH3V','DH3Y','DH3Z','DH4C','DH4F','DH4J','DH4N','DH4V','DH4X','DH4Y','DH5A','DH5C','DH5F','DH5J','DH5N','DH5P','DH5W','DH5X','DH5Y','DH6A','DH6F','DH6H','DH6J','DH6S','DH7H','DH7J','DH7L','DH7P','DH7S','DH7W','DH7Y','DH8A','DH8D','DH8H','DH8L','DH8N','DH8P','DH8Q','DH8S','DH8V','DH8W','DH8Y','DH8Z','DH9A','DH9B','DH9H','DH9J','DH9N','DH9P','DH9Q','DH9S','DH9U','DH9V','DH9Z','DHA0','DHA1','DHA2','DHA3','DHA4','DHA5','DHA6','DHAB','DHAK','DHB1','DHB2','DHB3','DHB4','DHB5','DHB6','DHB8','DHC7','DHD9','DHE5','DHE6','DHE8','DHE9','DHF0','DHF2','DHF3','DHF6','DHF9','DHG6','DHG7','DHG8','DHG9','DHH0','DHH1','DHH6','DHH7','DHH8','DHH9','DHI1','DHI3','DHI4','DHI5','DHI6','DHI7','DHI8','DHJ1','DHJ5','DHJ6','DHK2','DHK8','DHK9','DHL0','DHL1','DHL2','DHL3','DHM5','DHM6','DHN2','DHN5','DHP9','DHQ8','DHR1','DHR9','DHS7','DHS9','DHT2','DHT3','DHT9','DHU1','DHU6','DHU7','DHU8','DHU9','DHW2','DHW3','DHW4','DHW5','DHW6','DHW7','DHW8','DHW9','DHX1','DHX3','DHX4','DHX5','DHY1','DHY2','DHY3','DHY4','DHY5','DHY6','DHZ2','DHZ3','DHZ4','DHZ6','DHZ7','DHZ8','DH8M','DH9M','DHAA','DHR6','DH1R','DH2E','DH3M','DH4S','DH6M','DH6X','DH8B','DH9D','DH9R','DH9W','DHAF','DHAG','DHAH','DHAI','DHAJ','DHAL','DHE4','DHI9','DHM7','DHAO','DHAP','DHAQ','DHN7','DHP2','DH1L','DH2X','DH3C','DH3N','DH6N','DH6Y','DH7N','DHAC','DHAM','DHAN','DHAU','DHAV','DHAW','DHAX','DHAY','DHBE','DHBF','DHBR','DHY9','DHBZ','DHCA','DHCB','DH2P','DH3P','DH4D','DH4Z','DHBG','DHBH','DHBJ','DHBT','DHBW','DHBX','DHC0','DHCG','DHCJ','DHCR','DHDW','DHE0','DHN6','DHP5','DHU2','DHDT','DHDU','DHDV','DH1V','DH5E','DH6E','DH7M','DH7X','DHBA','DHBB','DHCK','DHCL','DHCM','DHCN','DHCP','DHEE','DHEF','DHEA','DHEB','DHEC','DH1N','DH2L','DH4G','DHDY','DHEH','DHEQ','DHEV','DH2D','DHER','DHES','DHET','DH1W','DH4P','DH5S','DH6Q','DHBC','DHBV','DHBY','DHCF','DHEW','DHEX','DHEY','DHFH','DHFJ','DHFK','DH1S','DHAT','DHAZ','DHEK','DHEZ','DHFA','DHFB','DHFC','DHFD','DHFF','DHFL','DHFR','DHFS','DHFT','DHFY','DHFZ','DHGC','DHGD','DHGH','DHGJ','DHGK','DHGS','DHGW','DH1X','DHFP','DHGL','DHGT','DHGZ','DHHA','DHHB','DHHC','DHHE','DHN4','DHGV','DHGX','DHHM','DH2T','DHGF','DHGY','DHHH','DHHJ','DHHK','DHHQ','DHHR','DHHS','DHHT','DHHL','DHHN','DHJK','DHFM','DHHF','DHJE','DHJF','DHJG','DHJL','DHJQ','DHJH','DHJJ','DHCD','DHGE','DHJR','DHJV','DHKB','DHJW','DHJX','DHJY','DHKG','DHKX','DHKD','DHKK','DHKY','DHKT','DHKV','DHKW','DHLM','DH3L','DH7B','DHBD','DHFG','DHKL','DHKN','DHKP','DHKQ','DHKS','DHLB','DHLE','DHX9','DHLJ','DHLK','DHLL','DHNG','DHCC','DHGA','DHJS','DHJZ','DHLA','DHLG','DHLH','DHLT','DHLY','DHLZ','DHNB','DHNJ','DHNK','DHND','DHNE','DHNF','DHNV','DHLF','DHLU','DHMA','DHMW','DHMY','DHNP','DHNY','DHPB','DHPD','DHPK','DHPP','DHNR','DHNS','DHNT','DHRG','DHLN','DHLW','DHMV','DHNL','DHNW','DHNX','DHPE','DHPM','DHPS','DHPZ','DHQB','DHQP','DHQR','DHRC','DHRH','DHRJ','DHRK','DHRL','DHRM','DHRN','DHRD','DHRE','DHRF','DHRW','DHFV','DHNM','DHQD','DHSD','DHRT','DHRU','DHRV','DHSC','DHSN','DHSP','DHMK','DHMM','DHNZ','DHPA','DHRS','DHRX','DHRZ','DHSA','DHSG','DHSH','DHSJ','DHSQ','DHSS','DHST','DHSU','DHSV','DHSW','DHSX','DHSY','DHTA','DHTB','DHTC','DHTD','DHTE','DHTL','DHTM','DHSK','DHSL','DHSM','DHTJ','DHTK','DHTR','DHPV','DHQH','DHQY','DHRA','DHSE','DHSZ','DHTN','DHTP','DHTQ','DHTS','DHVK','DHTF','DHTG','DHTH','DHVV','DHVW','DHMC','DHNN','DHNQ','DHQF','DHQT','DHQW','DHSF','DHTW','DHVY','DHVZ','DHY8','DHUD','DHUE','DHVS','DHVT','DHVU','DHBN','DHKF','DHLS','DHMX','DHQJ','DHUF','DHUG','DHUH','DHUU','DHVB','DHVD','DHVX','DHUA','DHUB','DHUC','DHUW','DHUY','DHUZ','DHAD','DHHG','DHLV','DHPX','DHWC','DHWE','DHWF','DHWG','DHUV','DHUX','DHWR','DH03','DHQE','DHQM','DHUT','DHVE','DHWD','DHWL','DHWM','DHWN','DHWP','DHWQ','DHWS','DH06','DH07','DH0C','DH0H','DH0N','DHP8','DHTV','DHTZ','DH0U','DH08','DH09','DH0A','DH0B','DH0J','DH0P','DH0Z','DH10','DH11','DH12','DH13','DH14','DH15','DHQN','DHQV','DH0S','DH0T','DH0W','DH49','DH04','DH0M','DH16','DH51','DH52','DH53','DH54','DH56','DHRP','DHVC','DH46','DH47','DH48','DH62','DH0D','DH0E','DH0F','DH0R','DH0X','DH25','DH35','DH57','DH58','DH7C','DHQZ','DHVA','DH59','DH60','DH61','DH85','DH87','DH20','DH21','DH64','DH74','DH75','DH76','DH77','DH78','DH81','DH82','DH92','DH93','DH94','DH95','DH96','DHVP','DH84','DH86','DH91','DHFU','DHH2','DHHU','DH0G','DH55','DHJU','DHP0','DHPF','DHPU','DHQ0','DHQU','DHR0','DHTU','DHHD','DHHX','DHWW','DH0Y','DH9X','DHK0','DHKU','DHLC','DHLD','DHLP','DHM0','DHS0','DHT0','DHXA','DHXB','DHXC','DHXD','DHXE','DHGU','DHWU','DHWV','DHXJ','DH17','DH18','DHX0','DHXL','DHXM','DHXN','DHXP','DHXQ','DHXR','DHXS','DHXT','DHXU','DHXG','DHXH','DHXK','DHXW','DHXY','DH19','DH37','DH39','DHN0','DHNU','DHY0','DHYC','DHYD','DHYG','DHYH','DHXX','DHXZ','DHYM','DHYP','DHRR','DHYJ','DHYL','DHYS','DH99','DHYN','DHYQ','DHYU','DHYW','DH0L','DH4R','DHMT','DHWZ','DHXV','DHYV','DHYX','DHZE','DHZG','DHPQ','DHRQ','DHZL','DHZF','DHZH','DHZV','DHZX','DHMU','DHQQ','DHTT','DHXF','DHZM','DHZN','DHZQ','DHZR','DHZS','DHZZ','VH04','VH05','DHZW','DHZY','VH09','VH0B','DHU0','DHVJ','DHWA','VH01','VH02','VH07','DH00','VH0A','VH0C','VH0L','VH0P','DH22','DH3S','DH4W','DHTX','DHUS','DHZT','VH03','VH0F','VH0G','VH0H','VH0K','VH0Q','VH0R','VH0W','VH0M','VH0N','VH14','VH16','DH4M','DHAE','DHPH','VH0T','VH0U','VH0V','VH0Z','VH10','VH1A','VH1D','VH1E','VH1K','VH15','VH17','VH1L','VH1N','VH1U','VH1M','VH1P','VH1V','VH1W','DH8K','DHBM','VH0J','VH0X','VH1Q','VH1S','VH1Y','DBE7','DBE8','DBE9','DBA0','DBA3','DBA9','DBB3','DBB4','DBB5','DBC0','DBE4','DBE5','DBF1','DBE1','DBF2','DBF3','DBF4','DBF5','DBF6','DBF7','DBF8','DBG1','DBG2','DBG3','DBG4','DBG5','DBG6','DBG7','DBG8','DBG9','DBH1','DBH2','DBH3','DBH4','DBH5','DBH6','DBH7','DBH8','DBH9','DBJ1','DBJ2','DBJ3','DBJ4','DBJ5','DBJ6','DBJ7','DBJ8','DBJ9','DBK1','DBK2','DBK3','DBK4','DBK5','DBK6','DBK7','DBK8','DBK9','DBL1','DBL2','DBL3','DBL4','DBL5','DBL6','DBL7','DBL8','DBL9','DBM1','DBM2','DB01','DB02','DB03','DB06','DB04','DB05','DB07','DB08','DB09','DB0A','DB0B','DB0C','DB0D','DB0E','DB0F','DB0G','DB0H','DB0J','DB0K','DB0L','DB0M','DB0N','DB0P','DB0Q','DB0R','DB0S','DB0T','DB0U','DB0V','DB0W','DB0X','DB0Y','DB0Z','DB10','DB11','DB12','DB13','DB14','DB15','DB16','DB17','DB18','DB19','DB1A','DB1B','DB1C','DB1D','DB1E','DB1F','DB1G','DB1H','DB1J','DB1K','DB1L','DB1M','DB1N') +) +ARRAY JOIN platform_order_no_array AS platform_order_no_new, arrayEnumerate(platform_order_no_array) AS i; + +-- 数据验证 +SELECT COUNT(platform_order_no) FROM custom_online_sale_local; +SELECT SUM(num) FROM ( +SELECT LENGTH(platform_order_no) - LENGTH(REPLACE(platform_order_no, ',', '')) + 1 AS num FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE store_code IN ('DAA0','DAB7','DX01','DPL1','DPL2','DPH2','DPH1','DPH3','DPH4','DPH5','DPH6','DPHD','DPHH','DPHL','DPHP','DPHN','DPHM','DPHR','DPHS','DPHQ','DPHT','DPHU','DPHV','DPHW','DPHX','DPHY','DPH0','DPA1','DPA2','DPA3','DPA4','DPA5','DPA6','DCA0','DCA9','DCD5','DCA7','DCB1','DCC7','DCC3','DCC5','DCE7','DCB7','DCD2','DCB0','DCD8','DCA5','DCF3','DCF4','DCF2','DCF5','DCF6','DCF8','DCF9','DCF1','DCG1','DCG3','DCG4','DCG5','DCH1','DCG6','DCG7','DCC1','DCG8','DCG9','DCH2','DCH3','DCH4','DCH5','DCH6','DCH7','DCH8','DCH9','DCL1','DCL2','DCL3','DCL4','DCL5','DCL6','DCL8','DCJ1','DCL9','DCJ2','DCJ5','DCJ3','DCJ4','DCJ6','DCJ7','DCJ9','DCK1','DCK2','DCK4','DCK5','DCK3','DCK6','DCK7','DCK8','DCK9','DCM2','DCM7','DCM1','DCM3','DCM4','DCM5','DCN2','DCN3','DCM9','DCM6','DCN1','DCN4','DCN5','DCN6','DCP4','DCN8','DCN9','DCP1','DCP7','DCP2','DCP5','DCP6','DCP8','DCP9','DCQ2','DCQ3','DCQ4','DCQ5','DCP3','DCQ8','DCQ6','DCQ7','DCQ9','DCR1','DCR3','DCR2','DCR4','DCR5','DC01','DC02','DC04','DC05','DC06','DC07','DC08','DC09','DC0A','DC0B','DC0C','DC0D','DC0E','DC0F','DC0G','DC0H','DC0J','DC0K','DC0L','DC0M','DC0N','DC0P','DC0Q','DC0R','DC0S','DC0T','DC0V','DC0U','DCN7','DC0X','DC0W','DC0Y','DC0Z','DC10','DC11','DC13','DC12','DC14','DC15','DC16','DC1A','DC17','DC1B','DC1C','DC1E','DC1D','DC1F','DC1G','DC1Q','DC1H','DC1J','DC1K','DC1L','DC1M','DC1N','DC1P','DC1R','DC1T','DFA5','DFB0','DFB5','DFC8','DFG4','DFC0','DFG2','DFG7','DFG3','DFG1','DFB3','DFF9','DFF3','DFB9','DFG8','DFH2','DFH1','DFH3','DFH4','DFH6','DFJ1','DFJ2','DFJ3','DFJ4','DFJ5','DFJ9','DFJ7','DFK1','DFJ6','DFJ8','DFK3','DF04','DFK2','DF05','DF07','DF0G','DF0E','DF0H','DF0K','DF0M','DF0D','DF06','DF0Q','DF0P','DF0N','DF0R','DF0F','DF0W','DF0T','DF0V','DF0J','DF0X','DF12','DK05','DK03','DK01','DK02','DK06','DK04','DK09','DK08','DK0B','DK0C','DK0A','DK0F','DK0D','DK0E','DK0G','DK0K','DK0L','DK0H','DGA0','DGA3','DGA5','DGA2','DGB4','DGA4','DGB1','DGA8','DGC9','DGD1','DGD2','DGD4','DGC4','DGC2','DGD5','DGD6','DGC6','DGB9','DGC7','DGD7','DGD8','DGD9','DGE1','DGD3','DGE2','DGE6','DGE5','DGE7','DGF1','DGE8','DGE9','DGF2','DGF3','DGF4','DGF5','DGF6','DGF8','DGF7','DGF9','DGG1','DGG2','DGG3','DGG4','DGG5','DGG6','DGG8','DGG7','DGH1','DGH2','DGH8','DGH9','DGH4','DGH3','DGH5','DGH6','DGH7','DGJ5','DGJ2','DGJ3','DGJ4','DGJ7','DGJ8','DGJ9','DGJ6','DGK2','DGK3','DGK8','DGK9','DGK4','DGK1','DGK5','DGK6','DGL2','DGL3','DGK7','DGL1','DGL5','DGJ1','DGL8','DGL9','DGL4','DGM2','DGL6','DGL7','DGN2','DGM3','DGM4','DGM5','DGM1','DGM8','DG01','DGM9','DGM6','DGN1','DGM7','DG05','DG02','DG04','DG0A','DG03','DGN3','DG06','DG08','DG0C','DG09','DG0B','DG07','DG0E','DG0F','DG0G','DG0Q','DG0N','DG0H','DG0J','DG0K','DG0L','DG0U','DG0V','DG0M','DG0P','DG0R','DG0S','DG10','DG11','DG0T','DG0W','DG13','DG0X','DG0Y','DG14','DG15','DG0Z','DG12','DG17','DG18','DG1A','DG1B','DG19','DG16','DG1D','DG1E','DG1G','DG1H','DG1F','DG1C','DG1K','DG1L','DG1R','DG1S','DG1M','DG1J','DG1U','DG1Q','DG1T','DG1V','DG1W','DG1N','DG1P','DG1X','DG1Y','DG23','DG1Z','DG25','DG20','DG22','DG26','DG21','DG24','DG27','DG29','DG2A','DG2F','DG2G','DG2B','DG28','DG2C','DG2D','DG2J','DG2K','DG2E','DG2H','DG2M','DG2N','DG2Q','DG2R','DG2P','DG2L','DG2T','DG2U','DG2Z','DG2V','DG2S','DG2W','DG2X','DG35','DG36','DG2Y','DG31','DG32','DG33','DG3B','DG3C','DG34','DG37','DH1D','DH3U','DH4H','DH4U','DH5K','DH5R','DH5U','DH5V','DH5Z','DH6R','DH6V','DH6Z','DH7R','DH7V','DH7Z','DHJ7','H5LX','DH1A','DH1C','DH1E','DH1G','DH1H','DH1J','DH1K','DH1M','DH1P','DH1Z','DH2C','DH2F','DH2G','DH2H','DH2J','DH2K','DH2M','DH2N','DH2R','DH2S','DH2V','DH3A','DH3D','DH3F','DH3G','DH3J','DH3R','DH3V','DH3Y','DH3Z','DH4C','DH4F','DH4J','DH4N','DH4V','DH4X','DH4Y','DH5A','DH5C','DH5F','DH5J','DH5N','DH5P','DH5W','DH5X','DH5Y','DH6A','DH6F','DH6H','DH6J','DH6S','DH7H','DH7J','DH7L','DH7P','DH7S','DH7W','DH7Y','DH8A','DH8D','DH8H','DH8L','DH8N','DH8P','DH8Q','DH8S','DH8V','DH8W','DH8Y','DH8Z','DH9A','DH9B','DH9H','DH9J','DH9N','DH9P','DH9Q','DH9S','DH9U','DH9V','DH9Z','DHA0','DHA1','DHA2','DHA3','DHA4','DHA5','DHA6','DHAB','DHAK','DHB1','DHB2','DHB3','DHB4','DHB5','DHB6','DHB8','DHC7','DHD9','DHE5','DHE6','DHE8','DHE9','DHF0','DHF2','DHF3','DHF6','DHF9','DHG6','DHG7','DHG8','DHG9','DHH0','DHH1','DHH6','DHH7','DHH8','DHH9','DHI1','DHI3','DHI4','DHI5','DHI6','DHI7','DHI8','DHJ1','DHJ5','DHJ6','DHK2','DHK8','DHK9','DHL0','DHL1','DHL2','DHL3','DHM5','DHM6','DHN2','DHN5','DHP9','DHQ8','DHR1','DHR9','DHS7','DHS9','DHT2','DHT3','DHT9','DHU1','DHU6','DHU7','DHU8','DHU9','DHW2','DHW3','DHW4','DHW5','DHW6','DHW7','DHW8','DHW9','DHX1','DHX3','DHX4','DHX5','DHY1','DHY2','DHY3','DHY4','DHY5','DHY6','DHZ2','DHZ3','DHZ4','DHZ6','DHZ7','DHZ8','DH8M','DH9M','DHAA','DHR6','DH1R','DH2E','DH3M','DH4S','DH6M','DH6X','DH8B','DH9D','DH9R','DH9W','DHAF','DHAG','DHAH','DHAI','DHAJ','DHAL','DHE4','DHI9','DHM7','DHAO','DHAP','DHAQ','DHN7','DHP2','DH1L','DH2X','DH3C','DH3N','DH6N','DH6Y','DH7N','DHAC','DHAM','DHAN','DHAU','DHAV','DHAW','DHAX','DHAY','DHBE','DHBF','DHBR','DHY9','DHBZ','DHCA','DHCB','DH2P','DH3P','DH4D','DH4Z','DHBG','DHBH','DHBJ','DHBT','DHBW','DHBX','DHC0','DHCG','DHCJ','DHCR','DHDW','DHE0','DHN6','DHP5','DHU2','DHDT','DHDU','DHDV','DH1V','DH5E','DH6E','DH7M','DH7X','DHBA','DHBB','DHCK','DHCL','DHCM','DHCN','DHCP','DHEE','DHEF','DHEA','DHEB','DHEC','DH1N','DH2L','DH4G','DHDY','DHEH','DHEQ','DHEV','DH2D','DHER','DHES','DHET','DH1W','DH4P','DH5S','DH6Q','DHBC','DHBV','DHBY','DHCF','DHEW','DHEX','DHEY','DHFH','DHFJ','DHFK','DH1S','DHAT','DHAZ','DHEK','DHEZ','DHFA','DHFB','DHFC','DHFD','DHFF','DHFL','DHFR','DHFS','DHFT','DHFY','DHFZ','DHGC','DHGD','DHGH','DHGJ','DHGK','DHGS','DHGW','DH1X','DHFP','DHGL','DHGT','DHGZ','DHHA','DHHB','DHHC','DHHE','DHN4','DHGV','DHGX','DHHM','DH2T','DHGF','DHGY','DHHH','DHHJ','DHHK','DHHQ','DHHR','DHHS','DHHT','DHHL','DHHN','DHJK','DHFM','DHHF','DHJE','DHJF','DHJG','DHJL','DHJQ','DHJH','DHJJ','DHCD','DHGE','DHJR','DHJV','DHKB','DHJW','DHJX','DHJY','DHKG','DHKX','DHKD','DHKK','DHKY','DHKT','DHKV','DHKW','DHLM','DH3L','DH7B','DHBD','DHFG','DHKL','DHKN','DHKP','DHKQ','DHKS','DHLB','DHLE','DHX9','DHLJ','DHLK','DHLL','DHNG','DHCC','DHGA','DHJS','DHJZ','DHLA','DHLG','DHLH','DHLT','DHLY','DHLZ','DHNB','DHNJ','DHNK','DHND','DHNE','DHNF','DHNV','DHLF','DHLU','DHMA','DHMW','DHMY','DHNP','DHNY','DHPB','DHPD','DHPK','DHPP','DHNR','DHNS','DHNT','DHRG','DHLN','DHLW','DHMV','DHNL','DHNW','DHNX','DHPE','DHPM','DHPS','DHPZ','DHQB','DHQP','DHQR','DHRC','DHRH','DHRJ','DHRK','DHRL','DHRM','DHRN','DHRD','DHRE','DHRF','DHRW','DHFV','DHNM','DHQD','DHSD','DHRT','DHRU','DHRV','DHSC','DHSN','DHSP','DHMK','DHMM','DHNZ','DHPA','DHRS','DHRX','DHRZ','DHSA','DHSG','DHSH','DHSJ','DHSQ','DHSS','DHST','DHSU','DHSV','DHSW','DHSX','DHSY','DHTA','DHTB','DHTC','DHTD','DHTE','DHTL','DHTM','DHSK','DHSL','DHSM','DHTJ','DHTK','DHTR','DHPV','DHQH','DHQY','DHRA','DHSE','DHSZ','DHTN','DHTP','DHTQ','DHTS','DHVK','DHTF','DHTG','DHTH','DHVV','DHVW','DHMC','DHNN','DHNQ','DHQF','DHQT','DHQW','DHSF','DHTW','DHVY','DHVZ','DHY8','DHUD','DHUE','DHVS','DHVT','DHVU','DHBN','DHKF','DHLS','DHMX','DHQJ','DHUF','DHUG','DHUH','DHUU','DHVB','DHVD','DHVX','DHUA','DHUB','DHUC','DHUW','DHUY','DHUZ','DHAD','DHHG','DHLV','DHPX','DHWC','DHWE','DHWF','DHWG','DHUV','DHUX','DHWR','DH03','DHQE','DHQM','DHUT','DHVE','DHWD','DHWL','DHWM','DHWN','DHWP','DHWQ','DHWS','DH06','DH07','DH0C','DH0H','DH0N','DHP8','DHTV','DHTZ','DH0U','DH08','DH09','DH0A','DH0B','DH0J','DH0P','DH0Z','DH10','DH11','DH12','DH13','DH14','DH15','DHQN','DHQV','DH0S','DH0T','DH0W','DH49','DH04','DH0M','DH16','DH51','DH52','DH53','DH54','DH56','DHRP','DHVC','DH46','DH47','DH48','DH62','DH0D','DH0E','DH0F','DH0R','DH0X','DH25','DH35','DH57','DH58','DH7C','DHQZ','DHVA','DH59','DH60','DH61','DH85','DH87','DH20','DH21','DH64','DH74','DH75','DH76','DH77','DH78','DH81','DH82','DH92','DH93','DH94','DH95','DH96','DHVP','DH84','DH86','DH91','DHFU','DHH2','DHHU','DH0G','DH55','DHJU','DHP0','DHPF','DHPU','DHQ0','DHQU','DHR0','DHTU','DHHD','DHHX','DHWW','DH0Y','DH9X','DHK0','DHKU','DHLC','DHLD','DHLP','DHM0','DHS0','DHT0','DHXA','DHXB','DHXC','DHXD','DHXE','DHGU','DHWU','DHWV','DHXJ','DH17','DH18','DHX0','DHXL','DHXM','DHXN','DHXP','DHXQ','DHXR','DHXS','DHXT','DHXU','DHXG','DHXH','DHXK','DHXW','DHXY','DH19','DH37','DH39','DHN0','DHNU','DHY0','DHYC','DHYD','DHYG','DHYH','DHXX','DHXZ','DHYM','DHYP','DHRR','DHYJ','DHYL','DHYS','DH99','DHYN','DHYQ','DHYU','DHYW','DH0L','DH4R','DHMT','DHWZ','DHXV','DHYV','DHYX','DHZE','DHZG','DHPQ','DHRQ','DHZL','DHZF','DHZH','DHZV','DHZX','DHMU','DHQQ','DHTT','DHXF','DHZM','DHZN','DHZQ','DHZR','DHZS','DHZZ','VH04','VH05','DHZW','DHZY','VH09','VH0B','DHU0','DHVJ','DHWA','VH01','VH02','VH07','DH00','VH0A','VH0C','VH0L','VH0P','DH22','DH3S','DH4W','DHTX','DHUS','DHZT','VH03','VH0F','VH0G','VH0H','VH0K','VH0Q','VH0R','VH0W','VH0M','VH0N','VH14','VH16','DH4M','DHAE','DHPH','VH0T','VH0U','VH0V','VH0Z','VH10','VH1A','VH1D','VH1E','VH1K','VH15','VH17','VH1L','VH1N','VH1U','VH1M','VH1P','VH1V','VH1W','DH8K','DHBM','VH0J','VH0X','VH1Q','VH1S','VH1Y','DBE7','DBE8','DBE9','DBA0','DBA3','DBA9','DBB3','DBB4','DBB5','DBC0','DBE4','DBE5','DBF1','DBE1','DBF2','DBF3','DBF4','DBF5','DBF6','DBF7','DBF8','DBG1','DBG2','DBG3','DBG4','DBG5','DBG6','DBG7','DBG8','DBG9','DBH1','DBH2','DBH3','DBH4','DBH5','DBH6','DBH7','DBH8','DBH9','DBJ1','DBJ2','DBJ3','DBJ4','DBJ5','DBJ6','DBJ7','DBJ8','DBJ9','DBK1','DBK2','DBK3','DBK4','DBK5','DBK6','DBK7','DBK8','DBK9','DBL1','DBL2','DBL3','DBL4','DBL5','DBL6','DBL7','DBL8','DBL9','DBM1','DBM2','DB01','DB02','DB03','DB06','DB04','DB05','DB07','DB08','DB09','DB0A','DB0B','DB0C','DB0D','DB0E','DB0F','DB0G','DB0H','DB0J','DB0K','DB0L','DB0M','DB0N','DB0P','DB0Q','DB0R','DB0S','DB0T','DB0U','DB0V','DB0W','DB0X','DB0Y','DB0Z','DB10','DB11','DB12','DB13','DB14','DB15','DB16','DB17','DB18','DB19','DB1A','DB1B','DB1C','DB1D','DB1E','DB1F','DB1G','DB1H','DB1J','DB1K','DB1L','DB1M','DB1N')); + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE platform_order_no LIKE '%,%'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE system_order_no = 'TM261600075604'; +SELECT * FROM custom_online_sale_local WHERE system_order_no = 'TM261600075604'; + +SELECT * +FROM (SELECT system_order_no, SUM(goods_amt) AS amt1 FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE store_code = 'DHF3' +GROUP BY system_order_no) a LEFT JOIN ( +SELECT system_order_no, SUM(goods_amt) AS amt2 FROM custom_online_sale_local +WHERE store_code = 'DHF3' +GROUP BY system_order_no) b ON a.system_order_no = b.system_order_no +WHERE ABS(amt1 - amt2) > 0; + + +-- 自定义退销本地表 +CREATE TABLE audit_bi_pro.custom_online_sale_return_local +( + `source_system` String COMMENT '来源系统', + `create_date` String COMMENT '创建日期', + `brand_code` String COMMENT '品牌编码', + `create_time` String COMMENT '创建时间', + `system_order_no` String COMMENT '系统订单号', + `store_code` String COMMENT '店铺编码', + `store_name` String COMMENT '店铺名称', + `association_order_no` String COMMENT '关联系统订单号', + `source_platform` String COMMENT '来源平台', + `platform_order_no` String COMMENT '平台订单号', + `nickname` String COMMENT '昵称', + `consignee_name` String COMMENT '收货人名称', + `consignee_tel` String COMMENT '收货人电话', + `consignee_add` String COMMENT '收货人地址', + `province` String COMMENT '省', + `city` String COMMENT '市', + `region` String COMMENT '区', + `return_freight_amt` Decimal(18,2) COMMENT '退款运费金额', + `return_carrier` String COMMENT '退款物流承运商', + `return_logistic_bill` String COMMENT '退款物流单号', + `return_reason` String COMMENT '平台退款原因', + `mgclear_time` String COMMENT '钱货两清时间', + `return_goods_code` String COMMENT '退货商品编码', + `return_goods_name` String COMMENT '退货商品名称', + `return_goods_barcode` String COMMENT '退货商品条码', + `return_goods_qty` Int64 COMMENT '退货商品数量', + `return_goods_amt` Decimal(18,2) COMMENT '退货单商品均摊退货金额', + `is_gift` String COMMENT '是否赠品' +) +ENGINE = ReplicatedMergeTree('/clickhouse/tables/audit_bi_pro/custom_online_sale_return_local/{shard}', + '{replica}') +PARTITION BY toYYYYMM(toDate(create_date)) +ORDER BY system_order_no +SETTINGS index_granularity = 8192 +COMMENT '自定义电商退销'; + +TRUNCATE TABLE custom_online_sale_return_local; + +INSERT INTO custom_online_sale_return_local +SELECT + source_system, + create_date, + brand_code, + create_time, + system_order_no, + store_code, + store_name, + association_order_no, + source_platform, + platform_order_no_new AS platform_order_no, + nickname, + consignee_name, + consignee_tel, + consignee_add, + province, + city, + region, + + toDecimal64(if(i < k, return_freight_amt_quotient, return_freight_amt_quotient + return_freight_amt_remainder), 2) / 100 AS return_freight_amt, + + return_carrier, + return_logistic_bill, + return_reason, + mgclear_time, + return_goods_code, + return_goods_name, + return_goods_barcode, + + if(i > (k - return_goods_qty_remainder), return_goods_qty_div + 1, return_goods_qty_div) AS t, + toDecimal64(if(i < k, return_goods_amt_quotient, return_goods_amt_quotient + return_goods_amt_remainder), 2) / 100 AS return_goods_amt, + + is_gift +FROM ( + SELECT + splitByChar(',', platform_order_no) AS platform_order_no_array, + length(platform_order_no_array) AS k, + toInt64(k) AS k_dec, + + source_system, + create_date, + brand_code, + create_time, + system_order_no, + store_code, + store_name, + association_order_no, + source_platform, + nickname, + consignee_name, + consignee_tel, + consignee_add, + province, + city, + region, + + return_freight_amt * 100 AS return_freight_amt_cents, + (toInt64(return_freight_amt_cents) div k_dec) AS return_freight_amt_quotient, + (toInt64(return_freight_amt_cents) % k_dec) AS return_freight_amt_remainder, + + return_carrier, + return_logistic_bill, + return_reason, + mgclear_time, + return_goods_code, + return_goods_name, + return_goods_barcode, + + (return_goods_qty div k_dec) AS return_goods_qty_div, + (return_goods_qty % k_dec) AS return_goods_qty_remainder, + + return_goods_amt * 100 AS return_goods_amt_cents, + (toInt64(return_goods_amt_cents) div k_dec) AS return_goods_amt_quotient, + (toInt64(return_goods_amt_cents) % k_dec) AS return_goods_amt_remainder, + + is_gift + FROM dwd_trade_hkaudit_ecommerce_sale_return_mt + WHERE store_code IN ('DAA0','DAB7','DX01','DPL1','DPL2','DPH2','DPH1','DPH3','DPH4','DPH5','DPH6','DPHD','DPHH','DPHL','DPHP','DPHN','DPHM','DPHR','DPHS','DPHQ','DPHT','DPHU','DPHV','DPHW','DPHX','DPHY','DPH0','DPA1','DPA2','DPA3','DPA4','DPA5','DPA6','DCA0','DCA9','DCD5','DCA7','DCB1','DCC7','DCC3','DCC5','DCE7','DCB7','DCD2','DCB0','DCD8','DCA5','DCF3','DCF4','DCF2','DCF5','DCF6','DCF8','DCF9','DCF1','DCG1','DCG3','DCG4','DCG5','DCH1','DCG6','DCG7','DCC1','DCG8','DCG9','DCH2','DCH3','DCH4','DCH5','DCH6','DCH7','DCH8','DCH9','DCL1','DCL2','DCL3','DCL4','DCL5','DCL6','DCL8','DCJ1','DCL9','DCJ2','DCJ5','DCJ3','DCJ4','DCJ6','DCJ7','DCJ9','DCK1','DCK2','DCK4','DCK5','DCK3','DCK6','DCK7','DCK8','DCK9','DCM2','DCM7','DCM1','DCM3','DCM4','DCM5','DCN2','DCN3','DCM9','DCM6','DCN1','DCN4','DCN5','DCN6','DCP4','DCN8','DCN9','DCP1','DCP7','DCP2','DCP5','DCP6','DCP8','DCP9','DCQ2','DCQ3','DCQ4','DCQ5','DCP3','DCQ8','DCQ6','DCQ7','DCQ9','DCR1','DCR3','DCR2','DCR4','DCR5','DC01','DC02','DC04','DC05','DC06','DC07','DC08','DC09','DC0A','DC0B','DC0C','DC0D','DC0E','DC0F','DC0G','DC0H','DC0J','DC0K','DC0L','DC0M','DC0N','DC0P','DC0Q','DC0R','DC0S','DC0T','DC0V','DC0U','DCN7','DC0X','DC0W','DC0Y','DC0Z','DC10','DC11','DC13','DC12','DC14','DC15','DC16','DC1A','DC17','DC1B','DC1C','DC1E','DC1D','DC1F','DC1G','DC1Q','DC1H','DC1J','DC1K','DC1L','DC1M','DC1N','DC1P','DC1R','DC1T','DFA5','DFB0','DFB5','DFC8','DFG4','DFC0','DFG2','DFG7','DFG3','DFG1','DFB3','DFF9','DFF3','DFB9','DFG8','DFH2','DFH1','DFH3','DFH4','DFH6','DFJ1','DFJ2','DFJ3','DFJ4','DFJ5','DFJ9','DFJ7','DFK1','DFJ6','DFJ8','DFK3','DF04','DFK2','DF05','DF07','DF0G','DF0E','DF0H','DF0K','DF0M','DF0D','DF06','DF0Q','DF0P','DF0N','DF0R','DF0F','DF0W','DF0T','DF0V','DF0J','DF0X','DF12','DK05','DK03','DK01','DK02','DK06','DK04','DK09','DK08','DK0B','DK0C','DK0A','DK0F','DK0D','DK0E','DK0G','DK0K','DK0L','DK0H','DGA0','DGA3','DGA5','DGA2','DGB4','DGA4','DGB1','DGA8','DGC9','DGD1','DGD2','DGD4','DGC4','DGC2','DGD5','DGD6','DGC6','DGB9','DGC7','DGD7','DGD8','DGD9','DGE1','DGD3','DGE2','DGE6','DGE5','DGE7','DGF1','DGE8','DGE9','DGF2','DGF3','DGF4','DGF5','DGF6','DGF8','DGF7','DGF9','DGG1','DGG2','DGG3','DGG4','DGG5','DGG6','DGG8','DGG7','DGH1','DGH2','DGH8','DGH9','DGH4','DGH3','DGH5','DGH6','DGH7','DGJ5','DGJ2','DGJ3','DGJ4','DGJ7','DGJ8','DGJ9','DGJ6','DGK2','DGK3','DGK8','DGK9','DGK4','DGK1','DGK5','DGK6','DGL2','DGL3','DGK7','DGL1','DGL5','DGJ1','DGL8','DGL9','DGL4','DGM2','DGL6','DGL7','DGN2','DGM3','DGM4','DGM5','DGM1','DGM8','DG01','DGM9','DGM6','DGN1','DGM7','DG05','DG02','DG04','DG0A','DG03','DGN3','DG06','DG08','DG0C','DG09','DG0B','DG07','DG0E','DG0F','DG0G','DG0Q','DG0N','DG0H','DG0J','DG0K','DG0L','DG0U','DG0V','DG0M','DG0P','DG0R','DG0S','DG10','DG11','DG0T','DG0W','DG13','DG0X','DG0Y','DG14','DG15','DG0Z','DG12','DG17','DG18','DG1A','DG1B','DG19','DG16','DG1D','DG1E','DG1G','DG1H','DG1F','DG1C','DG1K','DG1L','DG1R','DG1S','DG1M','DG1J','DG1U','DG1Q','DG1T','DG1V','DG1W','DG1N','DG1P','DG1X','DG1Y','DG23','DG1Z','DG25','DG20','DG22','DG26','DG21','DG24','DG27','DG29','DG2A','DG2F','DG2G','DG2B','DG28','DG2C','DG2D','DG2J','DG2K','DG2E','DG2H','DG2M','DG2N','DG2Q','DG2R','DG2P','DG2L','DG2T','DG2U','DG2Z','DG2V','DG2S','DG2W','DG2X','DG35','DG36','DG2Y','DG31','DG32','DG33','DG3B','DG3C','DG34','DG37','DH1D','DH3U','DH4H','DH4U','DH5K','DH5R','DH5U','DH5V','DH5Z','DH6R','DH6V','DH6Z','DH7R','DH7V','DH7Z','DHJ7','H5LX','DH1A','DH1C','DH1E','DH1G','DH1H','DH1J','DH1K','DH1M','DH1P','DH1Z','DH2C','DH2F','DH2G','DH2H','DH2J','DH2K','DH2M','DH2N','DH2R','DH2S','DH2V','DH3A','DH3D','DH3F','DH3G','DH3J','DH3R','DH3V','DH3Y','DH3Z','DH4C','DH4F','DH4J','DH4N','DH4V','DH4X','DH4Y','DH5A','DH5C','DH5F','DH5J','DH5N','DH5P','DH5W','DH5X','DH5Y','DH6A','DH6F','DH6H','DH6J','DH6S','DH7H','DH7J','DH7L','DH7P','DH7S','DH7W','DH7Y','DH8A','DH8D','DH8H','DH8L','DH8N','DH8P','DH8Q','DH8S','DH8V','DH8W','DH8Y','DH8Z','DH9A','DH9B','DH9H','DH9J','DH9N','DH9P','DH9Q','DH9S','DH9U','DH9V','DH9Z','DHA0','DHA1','DHA2','DHA3','DHA4','DHA5','DHA6','DHAB','DHAK','DHB1','DHB2','DHB3','DHB4','DHB5','DHB6','DHB8','DHC7','DHD9','DHE5','DHE6','DHE8','DHE9','DHF0','DHF2','DHF3','DHF6','DHF9','DHG6','DHG7','DHG8','DHG9','DHH0','DHH1','DHH6','DHH7','DHH8','DHH9','DHI1','DHI3','DHI4','DHI5','DHI6','DHI7','DHI8','DHJ1','DHJ5','DHJ6','DHK2','DHK8','DHK9','DHL0','DHL1','DHL2','DHL3','DHM5','DHM6','DHN2','DHN5','DHP9','DHQ8','DHR1','DHR9','DHS7','DHS9','DHT2','DHT3','DHT9','DHU1','DHU6','DHU7','DHU8','DHU9','DHW2','DHW3','DHW4','DHW5','DHW6','DHW7','DHW8','DHW9','DHX1','DHX3','DHX4','DHX5','DHY1','DHY2','DHY3','DHY4','DHY5','DHY6','DHZ2','DHZ3','DHZ4','DHZ6','DHZ7','DHZ8','DH8M','DH9M','DHAA','DHR6','DH1R','DH2E','DH3M','DH4S','DH6M','DH6X','DH8B','DH9D','DH9R','DH9W','DHAF','DHAG','DHAH','DHAI','DHAJ','DHAL','DHE4','DHI9','DHM7','DHAO','DHAP','DHAQ','DHN7','DHP2','DH1L','DH2X','DH3C','DH3N','DH6N','DH6Y','DH7N','DHAC','DHAM','DHAN','DHAU','DHAV','DHAW','DHAX','DHAY','DHBE','DHBF','DHBR','DHY9','DHBZ','DHCA','DHCB','DH2P','DH3P','DH4D','DH4Z','DHBG','DHBH','DHBJ','DHBT','DHBW','DHBX','DHC0','DHCG','DHCJ','DHCR','DHDW','DHE0','DHN6','DHP5','DHU2','DHDT','DHDU','DHDV','DH1V','DH5E','DH6E','DH7M','DH7X','DHBA','DHBB','DHCK','DHCL','DHCM','DHCN','DHCP','DHEE','DHEF','DHEA','DHEB','DHEC','DH1N','DH2L','DH4G','DHDY','DHEH','DHEQ','DHEV','DH2D','DHER','DHES','DHET','DH1W','DH4P','DH5S','DH6Q','DHBC','DHBV','DHBY','DHCF','DHEW','DHEX','DHEY','DHFH','DHFJ','DHFK','DH1S','DHAT','DHAZ','DHEK','DHEZ','DHFA','DHFB','DHFC','DHFD','DHFF','DHFL','DHFR','DHFS','DHFT','DHFY','DHFZ','DHGC','DHGD','DHGH','DHGJ','DHGK','DHGS','DHGW','DH1X','DHFP','DHGL','DHGT','DHGZ','DHHA','DHHB','DHHC','DHHE','DHN4','DHGV','DHGX','DHHM','DH2T','DHGF','DHGY','DHHH','DHHJ','DHHK','DHHQ','DHHR','DHHS','DHHT','DHHL','DHHN','DHJK','DHFM','DHHF','DHJE','DHJF','DHJG','DHJL','DHJQ','DHJH','DHJJ','DHCD','DHGE','DHJR','DHJV','DHKB','DHJW','DHJX','DHJY','DHKG','DHKX','DHKD','DHKK','DHKY','DHKT','DHKV','DHKW','DHLM','DH3L','DH7B','DHBD','DHFG','DHKL','DHKN','DHKP','DHKQ','DHKS','DHLB','DHLE','DHX9','DHLJ','DHLK','DHLL','DHNG','DHCC','DHGA','DHJS','DHJZ','DHLA','DHLG','DHLH','DHLT','DHLY','DHLZ','DHNB','DHNJ','DHNK','DHND','DHNE','DHNF','DHNV','DHLF','DHLU','DHMA','DHMW','DHMY','DHNP','DHNY','DHPB','DHPD','DHPK','DHPP','DHNR','DHNS','DHNT','DHRG','DHLN','DHLW','DHMV','DHNL','DHNW','DHNX','DHPE','DHPM','DHPS','DHPZ','DHQB','DHQP','DHQR','DHRC','DHRH','DHRJ','DHRK','DHRL','DHRM','DHRN','DHRD','DHRE','DHRF','DHRW','DHFV','DHNM','DHQD','DHSD','DHRT','DHRU','DHRV','DHSC','DHSN','DHSP','DHMK','DHMM','DHNZ','DHPA','DHRS','DHRX','DHRZ','DHSA','DHSG','DHSH','DHSJ','DHSQ','DHSS','DHST','DHSU','DHSV','DHSW','DHSX','DHSY','DHTA','DHTB','DHTC','DHTD','DHTE','DHTL','DHTM','DHSK','DHSL','DHSM','DHTJ','DHTK','DHTR','DHPV','DHQH','DHQY','DHRA','DHSE','DHSZ','DHTN','DHTP','DHTQ','DHTS','DHVK','DHTF','DHTG','DHTH','DHVV','DHVW','DHMC','DHNN','DHNQ','DHQF','DHQT','DHQW','DHSF','DHTW','DHVY','DHVZ','DHY8','DHUD','DHUE','DHVS','DHVT','DHVU','DHBN','DHKF','DHLS','DHMX','DHQJ','DHUF','DHUG','DHUH','DHUU','DHVB','DHVD','DHVX','DHUA','DHUB','DHUC','DHUW','DHUY','DHUZ','DHAD','DHHG','DHLV','DHPX','DHWC','DHWE','DHWF','DHWG','DHUV','DHUX','DHWR','DH03','DHQE','DHQM','DHUT','DHVE','DHWD','DHWL','DHWM','DHWN','DHWP','DHWQ','DHWS','DH06','DH07','DH0C','DH0H','DH0N','DHP8','DHTV','DHTZ','DH0U','DH08','DH09','DH0A','DH0B','DH0J','DH0P','DH0Z','DH10','DH11','DH12','DH13','DH14','DH15','DHQN','DHQV','DH0S','DH0T','DH0W','DH49','DH04','DH0M','DH16','DH51','DH52','DH53','DH54','DH56','DHRP','DHVC','DH46','DH47','DH48','DH62','DH0D','DH0E','DH0F','DH0R','DH0X','DH25','DH35','DH57','DH58','DH7C','DHQZ','DHVA','DH59','DH60','DH61','DH85','DH87','DH20','DH21','DH64','DH74','DH75','DH76','DH77','DH78','DH81','DH82','DH92','DH93','DH94','DH95','DH96','DHVP','DH84','DH86','DH91','DHFU','DHH2','DHHU','DH0G','DH55','DHJU','DHP0','DHPF','DHPU','DHQ0','DHQU','DHR0','DHTU','DHHD','DHHX','DHWW','DH0Y','DH9X','DHK0','DHKU','DHLC','DHLD','DHLP','DHM0','DHS0','DHT0','DHXA','DHXB','DHXC','DHXD','DHXE','DHGU','DHWU','DHWV','DHXJ','DH17','DH18','DHX0','DHXL','DHXM','DHXN','DHXP','DHXQ','DHXR','DHXS','DHXT','DHXU','DHXG','DHXH','DHXK','DHXW','DHXY','DH19','DH37','DH39','DHN0','DHNU','DHY0','DHYC','DHYD','DHYG','DHYH','DHXX','DHXZ','DHYM','DHYP','DHRR','DHYJ','DHYL','DHYS','DH99','DHYN','DHYQ','DHYU','DHYW','DH0L','DH4R','DHMT','DHWZ','DHXV','DHYV','DHYX','DHZE','DHZG','DHPQ','DHRQ','DHZL','DHZF','DHZH','DHZV','DHZX','DHMU','DHQQ','DHTT','DHXF','DHZM','DHZN','DHZQ','DHZR','DHZS','DHZZ','VH04','VH05','DHZW','DHZY','VH09','VH0B','DHU0','DHVJ','DHWA','VH01','VH02','VH07','DH00','VH0A','VH0C','VH0L','VH0P','DH22','DH3S','DH4W','DHTX','DHUS','DHZT','VH03','VH0F','VH0G','VH0H','VH0K','VH0Q','VH0R','VH0W','VH0M','VH0N','VH14','VH16','DH4M','DHAE','DHPH','VH0T','VH0U','VH0V','VH0Z','VH10','VH1A','VH1D','VH1E','VH1K','VH15','VH17','VH1L','VH1N','VH1U','VH1M','VH1P','VH1V','VH1W','DH8K','DHBM','VH0J','VH0X','VH1Q','VH1S','VH1Y','DBE7','DBE8','DBE9','DBA0','DBA3','DBA9','DBB3','DBB4','DBB5','DBC0','DBE4','DBE5','DBF1','DBE1','DBF2','DBF3','DBF4','DBF5','DBF6','DBF7','DBF8','DBG1','DBG2','DBG3','DBG4','DBG5','DBG6','DBG7','DBG8','DBG9','DBH1','DBH2','DBH3','DBH4','DBH5','DBH6','DBH7','DBH8','DBH9','DBJ1','DBJ2','DBJ3','DBJ4','DBJ5','DBJ6','DBJ7','DBJ8','DBJ9','DBK1','DBK2','DBK3','DBK4','DBK5','DBK6','DBK7','DBK8','DBK9','DBL1','DBL2','DBL3','DBL4','DBL5','DBL6','DBL7','DBL8','DBL9','DBM1','DBM2','DB01','DB02','DB03','DB06','DB04','DB05','DB07','DB08','DB09','DB0A','DB0B','DB0C','DB0D','DB0E','DB0F','DB0G','DB0H','DB0J','DB0K','DB0L','DB0M','DB0N','DB0P','DB0Q','DB0R','DB0S','DB0T','DB0U','DB0V','DB0W','DB0X','DB0Y','DB0Z','DB10','DB11','DB12','DB13','DB14','DB15','DB16','DB17','DB18','DB19','DB1A','DB1B','DB1C','DB1D','DB1E','DB1F','DB1G','DB1H','DB1J','DB1K','DB1L','DB1M','DB1N') +) +ARRAY JOIN platform_order_no_array AS platform_order_no_new, arrayEnumerate(platform_order_no_array) AS i; + +-- 自定义发货调整本地表 +CREATE TABLE audit_bi_pro.custom_online_sale_change_local +( + `source_system` String COMMENT '来源系统', + `create_date` String COMMENT '创建日期', + `brand_code` String COMMENT '品牌编码', + `create_time` String COMMENT '创建时间', + `system_order_no` String COMMENT '系统订单号', + `store_code` String COMMENT '店铺编码', + `store_name` String COMMENT '店铺名称', + `source_platform` String COMMENT '来源平台', + `platform_order_no` String COMMENT '平台订单号', + `mgclear_time` String COMMENT '钱货两清时间', + `special_barcode` String COMMENT '特殊条码', + `goods_qty` Int64 COMMENT '商品数量', + `special_barcode_amt` Decimal(18, 2) COMMENT '特殊条码均摊金额' +) +ENGINE = ReplicatedMergeTree('/clickhouse/tables/audit_bi_pro/custom_online_sale_change_local/{shard}', + '{replica}') +PARTITION BY toYYYYMM(toDate(create_date)) +ORDER BY system_order_no +SETTINGS index_granularity = 8192 +COMMENT '自定义电商发货调整类型'; + +TRUNCATE TABLE custom_online_sale_change_local; + +INSERT INTO custom_online_sale_change_local +SELECT + source_system, + create_date, + brand_code, + create_time, + system_order_no, + store_code, + store_name, + source_platform, + platform_order_no_new AS platform_order_no, + mgclear_time, + special_barcode, + + if(i > (k - goods_qty_remainder), goods_qty_div + 1, goods_qty_div) AS t, + toDecimal64(if(i < k, special_barcode_amt_quotient, special_barcode_amt_quotient + special_barcode_amt_remainder), 2) / 100 AS special_barcode_amt +FROM ( + SELECT + splitByChar(',', platform_order_no) AS platform_order_no_array, + length(platform_order_no_array) AS k, + toInt64(k) AS k_dec, + + source_system, + create_date, + brand_code, + create_time, + system_order_no, + store_code, + store_name, + source_platform, + platform_order_no, + mgclear_time, + special_barcode, + + (goods_qty div k_dec) AS goods_qty_div, + (goods_qty % k_dec) AS goods_qty_remainder, + + special_barcode_amt * 100 AS special_barcode_amt_cents, + (toInt64(special_barcode_amt_cents) div k_dec) AS special_barcode_amt_quotient, + (toInt64(special_barcode_amt_cents) % k_dec) AS special_barcode_amt_remainder + + FROM dwd_trade_hkaudit_ecommerce_sale_change_mt + WHERE store_code IN ('DAA0','DAB7','DX01','DPL1','DPL2','DPH2','DPH1','DPH3','DPH4','DPH5','DPH6','DPHD','DPHH','DPHL','DPHP','DPHN','DPHM','DPHR','DPHS','DPHQ','DPHT','DPHU','DPHV','DPHW','DPHX','DPHY','DPH0','DPA1','DPA2','DPA3','DPA4','DPA5','DPA6','DCA0','DCA9','DCD5','DCA7','DCB1','DCC7','DCC3','DCC5','DCE7','DCB7','DCD2','DCB0','DCD8','DCA5','DCF3','DCF4','DCF2','DCF5','DCF6','DCF8','DCF9','DCF1','DCG1','DCG3','DCG4','DCG5','DCH1','DCG6','DCG7','DCC1','DCG8','DCG9','DCH2','DCH3','DCH4','DCH5','DCH6','DCH7','DCH8','DCH9','DCL1','DCL2','DCL3','DCL4','DCL5','DCL6','DCL8','DCJ1','DCL9','DCJ2','DCJ5','DCJ3','DCJ4','DCJ6','DCJ7','DCJ9','DCK1','DCK2','DCK4','DCK5','DCK3','DCK6','DCK7','DCK8','DCK9','DCM2','DCM7','DCM1','DCM3','DCM4','DCM5','DCN2','DCN3','DCM9','DCM6','DCN1','DCN4','DCN5','DCN6','DCP4','DCN8','DCN9','DCP1','DCP7','DCP2','DCP5','DCP6','DCP8','DCP9','DCQ2','DCQ3','DCQ4','DCQ5','DCP3','DCQ8','DCQ6','DCQ7','DCQ9','DCR1','DCR3','DCR2','DCR4','DCR5','DC01','DC02','DC04','DC05','DC06','DC07','DC08','DC09','DC0A','DC0B','DC0C','DC0D','DC0E','DC0F','DC0G','DC0H','DC0J','DC0K','DC0L','DC0M','DC0N','DC0P','DC0Q','DC0R','DC0S','DC0T','DC0V','DC0U','DCN7','DC0X','DC0W','DC0Y','DC0Z','DC10','DC11','DC13','DC12','DC14','DC15','DC16','DC1A','DC17','DC1B','DC1C','DC1E','DC1D','DC1F','DC1G','DC1Q','DC1H','DC1J','DC1K','DC1L','DC1M','DC1N','DC1P','DC1R','DC1T','DFA5','DFB0','DFB5','DFC8','DFG4','DFC0','DFG2','DFG7','DFG3','DFG1','DFB3','DFF9','DFF3','DFB9','DFG8','DFH2','DFH1','DFH3','DFH4','DFH6','DFJ1','DFJ2','DFJ3','DFJ4','DFJ5','DFJ9','DFJ7','DFK1','DFJ6','DFJ8','DFK3','DF04','DFK2','DF05','DF07','DF0G','DF0E','DF0H','DF0K','DF0M','DF0D','DF06','DF0Q','DF0P','DF0N','DF0R','DF0F','DF0W','DF0T','DF0V','DF0J','DF0X','DF12','DK05','DK03','DK01','DK02','DK06','DK04','DK09','DK08','DK0B','DK0C','DK0A','DK0F','DK0D','DK0E','DK0G','DK0K','DK0L','DK0H','DGA0','DGA3','DGA5','DGA2','DGB4','DGA4','DGB1','DGA8','DGC9','DGD1','DGD2','DGD4','DGC4','DGC2','DGD5','DGD6','DGC6','DGB9','DGC7','DGD7','DGD8','DGD9','DGE1','DGD3','DGE2','DGE6','DGE5','DGE7','DGF1','DGE8','DGE9','DGF2','DGF3','DGF4','DGF5','DGF6','DGF8','DGF7','DGF9','DGG1','DGG2','DGG3','DGG4','DGG5','DGG6','DGG8','DGG7','DGH1','DGH2','DGH8','DGH9','DGH4','DGH3','DGH5','DGH6','DGH7','DGJ5','DGJ2','DGJ3','DGJ4','DGJ7','DGJ8','DGJ9','DGJ6','DGK2','DGK3','DGK8','DGK9','DGK4','DGK1','DGK5','DGK6','DGL2','DGL3','DGK7','DGL1','DGL5','DGJ1','DGL8','DGL9','DGL4','DGM2','DGL6','DGL7','DGN2','DGM3','DGM4','DGM5','DGM1','DGM8','DG01','DGM9','DGM6','DGN1','DGM7','DG05','DG02','DG04','DG0A','DG03','DGN3','DG06','DG08','DG0C','DG09','DG0B','DG07','DG0E','DG0F','DG0G','DG0Q','DG0N','DG0H','DG0J','DG0K','DG0L','DG0U','DG0V','DG0M','DG0P','DG0R','DG0S','DG10','DG11','DG0T','DG0W','DG13','DG0X','DG0Y','DG14','DG15','DG0Z','DG12','DG17','DG18','DG1A','DG1B','DG19','DG16','DG1D','DG1E','DG1G','DG1H','DG1F','DG1C','DG1K','DG1L','DG1R','DG1S','DG1M','DG1J','DG1U','DG1Q','DG1T','DG1V','DG1W','DG1N','DG1P','DG1X','DG1Y','DG23','DG1Z','DG25','DG20','DG22','DG26','DG21','DG24','DG27','DG29','DG2A','DG2F','DG2G','DG2B','DG28','DG2C','DG2D','DG2J','DG2K','DG2E','DG2H','DG2M','DG2N','DG2Q','DG2R','DG2P','DG2L','DG2T','DG2U','DG2Z','DG2V','DG2S','DG2W','DG2X','DG35','DG36','DG2Y','DG31','DG32','DG33','DG3B','DG3C','DG34','DG37','DH1D','DH3U','DH4H','DH4U','DH5K','DH5R','DH5U','DH5V','DH5Z','DH6R','DH6V','DH6Z','DH7R','DH7V','DH7Z','DHJ7','H5LX','DH1A','DH1C','DH1E','DH1G','DH1H','DH1J','DH1K','DH1M','DH1P','DH1Z','DH2C','DH2F','DH2G','DH2H','DH2J','DH2K','DH2M','DH2N','DH2R','DH2S','DH2V','DH3A','DH3D','DH3F','DH3G','DH3J','DH3R','DH3V','DH3Y','DH3Z','DH4C','DH4F','DH4J','DH4N','DH4V','DH4X','DH4Y','DH5A','DH5C','DH5F','DH5J','DH5N','DH5P','DH5W','DH5X','DH5Y','DH6A','DH6F','DH6H','DH6J','DH6S','DH7H','DH7J','DH7L','DH7P','DH7S','DH7W','DH7Y','DH8A','DH8D','DH8H','DH8L','DH8N','DH8P','DH8Q','DH8S','DH8V','DH8W','DH8Y','DH8Z','DH9A','DH9B','DH9H','DH9J','DH9N','DH9P','DH9Q','DH9S','DH9U','DH9V','DH9Z','DHA0','DHA1','DHA2','DHA3','DHA4','DHA5','DHA6','DHAB','DHAK','DHB1','DHB2','DHB3','DHB4','DHB5','DHB6','DHB8','DHC7','DHD9','DHE5','DHE6','DHE8','DHE9','DHF0','DHF2','DHF3','DHF6','DHF9','DHG6','DHG7','DHG8','DHG9','DHH0','DHH1','DHH6','DHH7','DHH8','DHH9','DHI1','DHI3','DHI4','DHI5','DHI6','DHI7','DHI8','DHJ1','DHJ5','DHJ6','DHK2','DHK8','DHK9','DHL0','DHL1','DHL2','DHL3','DHM5','DHM6','DHN2','DHN5','DHP9','DHQ8','DHR1','DHR9','DHS7','DHS9','DHT2','DHT3','DHT9','DHU1','DHU6','DHU7','DHU8','DHU9','DHW2','DHW3','DHW4','DHW5','DHW6','DHW7','DHW8','DHW9','DHX1','DHX3','DHX4','DHX5','DHY1','DHY2','DHY3','DHY4','DHY5','DHY6','DHZ2','DHZ3','DHZ4','DHZ6','DHZ7','DHZ8','DH8M','DH9M','DHAA','DHR6','DH1R','DH2E','DH3M','DH4S','DH6M','DH6X','DH8B','DH9D','DH9R','DH9W','DHAF','DHAG','DHAH','DHAI','DHAJ','DHAL','DHE4','DHI9','DHM7','DHAO','DHAP','DHAQ','DHN7','DHP2','DH1L','DH2X','DH3C','DH3N','DH6N','DH6Y','DH7N','DHAC','DHAM','DHAN','DHAU','DHAV','DHAW','DHAX','DHAY','DHBE','DHBF','DHBR','DHY9','DHBZ','DHCA','DHCB','DH2P','DH3P','DH4D','DH4Z','DHBG','DHBH','DHBJ','DHBT','DHBW','DHBX','DHC0','DHCG','DHCJ','DHCR','DHDW','DHE0','DHN6','DHP5','DHU2','DHDT','DHDU','DHDV','DH1V','DH5E','DH6E','DH7M','DH7X','DHBA','DHBB','DHCK','DHCL','DHCM','DHCN','DHCP','DHEE','DHEF','DHEA','DHEB','DHEC','DH1N','DH2L','DH4G','DHDY','DHEH','DHEQ','DHEV','DH2D','DHER','DHES','DHET','DH1W','DH4P','DH5S','DH6Q','DHBC','DHBV','DHBY','DHCF','DHEW','DHEX','DHEY','DHFH','DHFJ','DHFK','DH1S','DHAT','DHAZ','DHEK','DHEZ','DHFA','DHFB','DHFC','DHFD','DHFF','DHFL','DHFR','DHFS','DHFT','DHFY','DHFZ','DHGC','DHGD','DHGH','DHGJ','DHGK','DHGS','DHGW','DH1X','DHFP','DHGL','DHGT','DHGZ','DHHA','DHHB','DHHC','DHHE','DHN4','DHGV','DHGX','DHHM','DH2T','DHGF','DHGY','DHHH','DHHJ','DHHK','DHHQ','DHHR','DHHS','DHHT','DHHL','DHHN','DHJK','DHFM','DHHF','DHJE','DHJF','DHJG','DHJL','DHJQ','DHJH','DHJJ','DHCD','DHGE','DHJR','DHJV','DHKB','DHJW','DHJX','DHJY','DHKG','DHKX','DHKD','DHKK','DHKY','DHKT','DHKV','DHKW','DHLM','DH3L','DH7B','DHBD','DHFG','DHKL','DHKN','DHKP','DHKQ','DHKS','DHLB','DHLE','DHX9','DHLJ','DHLK','DHLL','DHNG','DHCC','DHGA','DHJS','DHJZ','DHLA','DHLG','DHLH','DHLT','DHLY','DHLZ','DHNB','DHNJ','DHNK','DHND','DHNE','DHNF','DHNV','DHLF','DHLU','DHMA','DHMW','DHMY','DHNP','DHNY','DHPB','DHPD','DHPK','DHPP','DHNR','DHNS','DHNT','DHRG','DHLN','DHLW','DHMV','DHNL','DHNW','DHNX','DHPE','DHPM','DHPS','DHPZ','DHQB','DHQP','DHQR','DHRC','DHRH','DHRJ','DHRK','DHRL','DHRM','DHRN','DHRD','DHRE','DHRF','DHRW','DHFV','DHNM','DHQD','DHSD','DHRT','DHRU','DHRV','DHSC','DHSN','DHSP','DHMK','DHMM','DHNZ','DHPA','DHRS','DHRX','DHRZ','DHSA','DHSG','DHSH','DHSJ','DHSQ','DHSS','DHST','DHSU','DHSV','DHSW','DHSX','DHSY','DHTA','DHTB','DHTC','DHTD','DHTE','DHTL','DHTM','DHSK','DHSL','DHSM','DHTJ','DHTK','DHTR','DHPV','DHQH','DHQY','DHRA','DHSE','DHSZ','DHTN','DHTP','DHTQ','DHTS','DHVK','DHTF','DHTG','DHTH','DHVV','DHVW','DHMC','DHNN','DHNQ','DHQF','DHQT','DHQW','DHSF','DHTW','DHVY','DHVZ','DHY8','DHUD','DHUE','DHVS','DHVT','DHVU','DHBN','DHKF','DHLS','DHMX','DHQJ','DHUF','DHUG','DHUH','DHUU','DHVB','DHVD','DHVX','DHUA','DHUB','DHUC','DHUW','DHUY','DHUZ','DHAD','DHHG','DHLV','DHPX','DHWC','DHWE','DHWF','DHWG','DHUV','DHUX','DHWR','DH03','DHQE','DHQM','DHUT','DHVE','DHWD','DHWL','DHWM','DHWN','DHWP','DHWQ','DHWS','DH06','DH07','DH0C','DH0H','DH0N','DHP8','DHTV','DHTZ','DH0U','DH08','DH09','DH0A','DH0B','DH0J','DH0P','DH0Z','DH10','DH11','DH12','DH13','DH14','DH15','DHQN','DHQV','DH0S','DH0T','DH0W','DH49','DH04','DH0M','DH16','DH51','DH52','DH53','DH54','DH56','DHRP','DHVC','DH46','DH47','DH48','DH62','DH0D','DH0E','DH0F','DH0R','DH0X','DH25','DH35','DH57','DH58','DH7C','DHQZ','DHVA','DH59','DH60','DH61','DH85','DH87','DH20','DH21','DH64','DH74','DH75','DH76','DH77','DH78','DH81','DH82','DH92','DH93','DH94','DH95','DH96','DHVP','DH84','DH86','DH91','DHFU','DHH2','DHHU','DH0G','DH55','DHJU','DHP0','DHPF','DHPU','DHQ0','DHQU','DHR0','DHTU','DHHD','DHHX','DHWW','DH0Y','DH9X','DHK0','DHKU','DHLC','DHLD','DHLP','DHM0','DHS0','DHT0','DHXA','DHXB','DHXC','DHXD','DHXE','DHGU','DHWU','DHWV','DHXJ','DH17','DH18','DHX0','DHXL','DHXM','DHXN','DHXP','DHXQ','DHXR','DHXS','DHXT','DHXU','DHXG','DHXH','DHXK','DHXW','DHXY','DH19','DH37','DH39','DHN0','DHNU','DHY0','DHYC','DHYD','DHYG','DHYH','DHXX','DHXZ','DHYM','DHYP','DHRR','DHYJ','DHYL','DHYS','DH99','DHYN','DHYQ','DHYU','DHYW','DH0L','DH4R','DHMT','DHWZ','DHXV','DHYV','DHYX','DHZE','DHZG','DHPQ','DHRQ','DHZL','DHZF','DHZH','DHZV','DHZX','DHMU','DHQQ','DHTT','DHXF','DHZM','DHZN','DHZQ','DHZR','DHZS','DHZZ','VH04','VH05','DHZW','DHZY','VH09','VH0B','DHU0','DHVJ','DHWA','VH01','VH02','VH07','DH00','VH0A','VH0C','VH0L','VH0P','DH22','DH3S','DH4W','DHTX','DHUS','DHZT','VH03','VH0F','VH0G','VH0H','VH0K','VH0Q','VH0R','VH0W','VH0M','VH0N','VH14','VH16','DH4M','DHAE','DHPH','VH0T','VH0U','VH0V','VH0Z','VH10','VH1A','VH1D','VH1E','VH1K','VH15','VH17','VH1L','VH1N','VH1U','VH1M','VH1P','VH1V','VH1W','DH8K','DHBM','VH0J','VH0X','VH1Q','VH1S','VH1Y','DBE7','DBE8','DBE9','DBA0','DBA3','DBA9','DBB3','DBB4','DBB5','DBC0','DBE4','DBE5','DBF1','DBE1','DBF2','DBF3','DBF4','DBF5','DBF6','DBF7','DBF8','DBG1','DBG2','DBG3','DBG4','DBG5','DBG6','DBG7','DBG8','DBG9','DBH1','DBH2','DBH3','DBH4','DBH5','DBH6','DBH7','DBH8','DBH9','DBJ1','DBJ2','DBJ3','DBJ4','DBJ5','DBJ6','DBJ7','DBJ8','DBJ9','DBK1','DBK2','DBK3','DBK4','DBK5','DBK6','DBK7','DBK8','DBK9','DBL1','DBL2','DBL3','DBL4','DBL5','DBL6','DBL7','DBL8','DBL9','DBM1','DBM2','DB01','DB02','DB03','DB06','DB04','DB05','DB07','DB08','DB09','DB0A','DB0B','DB0C','DB0D','DB0E','DB0F','DB0G','DB0H','DB0J','DB0K','DB0L','DB0M','DB0N','DB0P','DB0Q','DB0R','DB0S','DB0T','DB0U','DB0V','DB0W','DB0X','DB0Y','DB0Z','DB10','DB11','DB12','DB13','DB14','DB15','DB16','DB17','DB18','DB19','DB1A','DB1B','DB1C','DB1D','DB1E','DB1F','DB1G','DB1H','DB1J','DB1K','DB1L','DB1M','DB1N') +) +ARRAY JOIN platform_order_no_array AS platform_order_no_new, arrayEnumerate(platform_order_no_array) AS i; + +-- 数据验证 +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_change_mt WHERE platform_order_no LIKE '%,%'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_change_mt WHERE platform_order_no LIKE '%2686188457581570647%'; +SELECT * FROM custom_online_sale_change_local WHERE platform_order_no IN ('2686188457618570647','2686188457572570647','2686188457581570647'); + + +-- 按照下单时间 +SELECT + a.perTime, + a.store_code, + MAX(a.store_name), + SUM(a.sale_amount), + SUM(b.sale_refund_amount), + SUM(c.sale_change_amount), + SUM(d.order_freight_amt), + SUM(f.return_freight_amt) +FROM (SELECT + SUBSTR(order_date, 1, 7) AS perTime, + store_code, + MAX(store_name) AS store_name, + platform_order_no, + SUM(goods_amt) AS sale_amount +FROM custom_online_sale_local +GROUP BY SUBSTR(order_date, 1, 7), store_code, platform_order_no) a +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(order_freight_amt_t) AS order_freight_amt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MAX(order_freight_amt) AS order_freight_amt_t + FROM custom_online_sale_local + WHERE source_system = 'EC_HIS' AND order_freight_amt > 0 + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no +) d ON a.store_code = d.store_code AND a.platform_order_no = d.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(return_goods_amt) AS sale_refund_amount + FROM custom_online_sale_return_local + GROUP BY store_code, platform_order_no +) b ON a.store_code = b.store_code AND a.platform_order_no = b.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, MAX(return_freight_amt) AS return_freight_amt + FROM custom_online_sale_return_local + WHERE source_system = 'EC_HIS' + GROUP BY store_code, platform_order_no +) f ON a.store_code = f.store_code AND a.platform_order_no = f.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(special_barcode_amt) AS sale_change_amount + FROM custom_online_sale_change_local + GROUP BY store_code, platform_order_no +) c ON a.store_code = c.store_code AND a.platform_order_no = c.platform_order_no +GROUP BY a.perTime, a.store_code; + +-- 按照钱货两清时间 +SELECT + a.perTime, + a.store_code, + MAX(a.store_name), + SUM(a.sale_amount), + SUM(b.sale_refund_amount), + SUM(c.sale_change_amount), + SUM(d.order_freight_amt), + SUM(f.return_freight_amt) +FROM (SELECT + SUBSTR(mgclear_time, 1, 7) AS perTime, + store_code, + MAX(store_name) AS store_name, + platform_order_no, + SUM(goods_amt) AS sale_amount +FROM custom_online_sale_local +GROUP BY SUBSTR(mgclear_time, 1, 7), store_code, platform_order_no) a +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(order_freight_amt_t) AS order_freight_amt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MAX(order_freight_amt) AS order_freight_amt_t + FROM custom_online_sale_local + WHERE source_system = 'EC_HIS' AND order_freight_amt > 0 + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no +) d ON a.store_code = d.store_code AND a.platform_order_no = d.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(return_goods_amt) AS sale_refund_amount + FROM custom_online_sale_return_local + GROUP BY store_code, platform_order_no +) b ON a.store_code = b.store_code AND a.platform_order_no = b.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, MAX(return_freight_amt) AS return_freight_amt + FROM custom_online_sale_return_local + WHERE source_system = 'EC_HIS' + GROUP BY store_code, platform_order_no +) f ON a.store_code = f.store_code AND a.platform_order_no = f.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(special_barcode_amt) AS sale_change_amount + FROM custom_online_sale_change_local + GROUP BY store_code, platform_order_no +) c ON a.store_code = c.store_code AND a.platform_order_no = c.platform_order_no +GROUP BY a.perTime, a.store_code; + +SELECT + store_code, + SUBSTR(mgclear_time, 1, 7) AS perTime, + MAX(store_name) AS store_name, + SUM(goods_amt) AS sale_amount +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE store_code = 'DHF3' AND SUBSTR(mgclear_time, 1, 4) = '2024' +GROUP BY store_code, SUBSTR(mgclear_time, 1, 7); + +SELECT + store_code, + SUBSTR(mgclear_time, 1, 7) AS perTime, + SUM(return_goods_amt) AS sale_amount +FROM dwd_trade_hkaudit_ecommerce_sale_return_mt +WHERE store_code = 'DHF3' AND SUBSTR(mgclear_time, 1, 4) = '2024' +GROUP BY store_code, SUBSTR(mgclear_time, 1, 7); + +SELECT + store_code, + SUBSTR(mgclear_time, 1, 7) AS perTime, + SUM(special_barcode_amt) AS sale_amount +FROM dwd_trade_hkaudit_ecommerce_sale_change_mt +WHERE store_code = 'DHF3' AND SUBSTR(mgclear_time, 1, 4) = '2024' +GROUP BY store_code, SUBSTR(mgclear_time, 1, 7); + + +SELECT a.perTime, + a.store_code, + MAX(a.store_name), + SUM(a.sale_amount), + SUM(b.sale_refund_amount) +FROM (SELECT + store_code, + SUBSTR(mgclear_time, 1, 7) AS perTime, + platform_order_no, + MAX(store_name) AS store_name, + SUM(goods_amt) AS sale_amount +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE store_code = 'DHF3' AND SUBSTR(mgclear_time, 1, 4) = '2024' +GROUP BY store_code, SUBSTR(mgclear_time, 1, 7), platform_order_no) a +LEFT JOIN ( +SELECT + store_code, + platform_order_no, + SUM(return_goods_amt) AS sale_refund_amount +FROM dwd_trade_hkaudit_ecommerce_sale_return_mt +GROUP BY store_code, platform_order_no) b ON a.store_code = b.store_code AND a.platform_order_no = b.platform_order_no +GROUP BY a.store_code, a.perTime; + +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE order_time < '2022-01-01 00:00:00'; + +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE store_code = 'DHF3' AND order_time >= '2024-05-01 00:00:00' AND order_time < '2024-08-01 00:00:00'; + +SELECT COUNT(DISTINCT system_order_no) FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE store_code = 'DHF3' AND order_time >= '2024-05-01 00:00:00' AND order_time < '2024-08-01 00:00:00' AND order_freight_amt <> 0; + + +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_change_mt +WHERE store_code = 'DHF3' AND create_date >= '2024-05-01' AND create_date < '2024-08-01'; + + +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_return_mt +WHERE store_code = 'DHF3' AND create_date >= '2024-05-01' AND create_date < '2024-08-01'; + + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE store_name LIKE '%唯品会%' AND order_date >= '2024-05-01' AND order_date < '2024-08-01'; + +SELECT order_date, goods_barcode FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE store_code = 'DB0K' GROUP BY order_date, goods_barcode HAVING COUNT(goods_barcode) > 1; + +SELECT consignee_add FROM dwd_trade_hkaudit_ecommerce_sale_mt; + +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt; +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE consignee_add = ''; + + +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE consignee_add = '' AND (store_name LIKE '%唯品会%' OR store_name LIKE '%京东自营%'); + +SELECT store_code, MAX(store_name), COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE consignee_add = '' AND store_name NOT LIKE '%唯品会%' AND store_name NOT LIKE '%京东自营%' +GROUP BY store_code ; + + + + + diff --git a/数据分析/v3/正式-处理.sql b/数据分析/v3/正式-处理.sql new file mode 100644 index 0000000..1755d3e --- /dev/null +++ b/数据分析/v3/正式-处理.sql @@ -0,0 +1,947 @@ +-- 1自定义销售本地表(订单相关) +CREATE TABLE audit_bi_pro.custom_online_sale_order_tmp_local +( + `source_system` String COMMENT '来源系统', + `order_date` String COMMENT '下单日期', + `brand_code` String COMMENT '品牌编码', + `order_time` String COMMENT '下单时间', + `system_order_no` String COMMENT '系统订单号', + `store_code` String COMMENT '店铺编码', + `store_name` String COMMENT '店铺名称', + `manual_order` String COMMENT '手工单', + `is_swap_order` String COMMENT '是否换货单', + `source_platform` String COMMENT '来源平台', + `platform_order_no` String COMMENT '平台订单号', + `nickname` String COMMENT '昵称', + `consignee_name` String COMMENT '收货人名称', + `consignee_tel` String COMMENT '收货人电话', + `consignee_add` String COMMENT '收货人地址', + `province` String COMMENT '省', + `city` String COMMENT '市', + `region` String COMMENT '区', + `pay_time` String COMMENT '付款时间', + `deliver_time` String COMMENT '发货时间', + `mgclear_time` String COMMENT '钱货两清时间', + `main_logistic_bill` String COMMENT '主物流号', + `carrier` String COMMENT '承运商', + `order_retail_amt` Decimal(18, 2) COMMENT '订单零售金额', + `order_settle_amt` Decimal(18, 2) COMMENT '订单结算金额', + `order_freight_amt` Decimal(18, 2) COMMENT '订单运费金额', + `goods_barcode` String COMMENT '商品条码', + `goods_qty` Int64 COMMENT '商品数量', + `goods_price` Decimal(18, 2) COMMENT '商品单价', + `goods_amt` Decimal(18, 2) COMMENT '订单商品均摊金额', + `is_gift` String COMMENT '是否赠品' +) +ENGINE = ReplicatedMergeTree('/clickhouse/tables/audit_bi_pro/custom_online_sale_order_tmp_local/{shard}', + '{replica}') +PARTITION BY toYYYYMM(toDate(order_date)) +ORDER BY system_order_no +SETTINGS index_granularity = 8192 +COMMENT '自定义电商销售-临时'; + +-- 1-2自定义销售本地表(订单相关) +CREATE TABLE audit_bi_pro.custom_online_sale_order_local +( + `source_system` String COMMENT '来源系统', + `order_date` String COMMENT '下单日期', + `brand_code` String COMMENT '品牌编码', + `order_time` String COMMENT '下单时间', + `system_order_no` String COMMENT '系统订单号', + `store_code` String COMMENT '店铺编码', + `store_name` String COMMENT '店铺名称', + `manual_order` String COMMENT '手工单', + `is_swap_order` String COMMENT '是否换货单', + `source_platform` String COMMENT '来源平台', + `platform_order_no` String COMMENT '平台订单号', + `nickname` String COMMENT '昵称', + `consignee_name` String COMMENT '收货人名称', + `consignee_tel` String COMMENT '收货人电话', + `consignee_add` String COMMENT '收货人地址', + `province` String COMMENT '省', + `city` String COMMENT '市', + `region` String COMMENT '区', + `pay_time` String COMMENT '付款时间', + `deliver_time` String COMMENT '发货时间', + `mgclear_time` String COMMENT '钱货两清时间', + `main_logistic_bill` String COMMENT '主物流号', + `carrier` String COMMENT '承运商', + `order_retail_amt` Decimal(18, 2) COMMENT '订单零售金额', + `order_settle_amt` Decimal(18, 2) COMMENT '订单结算金额', + `order_freight_amt` Decimal(18, 2) COMMENT '订单运费金额', + `goods_barcode` String COMMENT '商品条码', + `goods_qty` Int64 COMMENT '商品数量', + `goods_price` Decimal(18, 2) COMMENT '商品单价', + `goods_amt` Decimal(18, 2) COMMENT '订单商品均摊金额', + `is_gift` String COMMENT '是否赠品', + `min_order_time` String COMMENT '每个平台订单最小下单时间' +) +ENGINE = ReplicatedMergeTree('/clickhouse/tables/audit_bi_pro/custom_online_sale_order_local/{shard}', + '{replica}') +PARTITION BY toYYYYMM(toDate(order_date)) +ORDER BY system_order_no +SETTINGS index_granularity = 8192 +COMMENT '自定义电商销售'; + +-- 2自定义销售本地表(账单相关) +CREATE TABLE audit_bi_pro.custom_online_sale_bill_local +( + `source_system` String COMMENT '来源系统', + `order_date` String COMMENT '下单日期', + `brand_code` String COMMENT '品牌编码', + `order_time` String COMMENT '下单时间', + `system_order_no` String COMMENT '系统订单号', + `store_code` String COMMENT '店铺编码', + `store_name` String COMMENT '店铺名称', + `manual_order` String COMMENT '手工单', + `is_swap_order` String COMMENT '是否换货单', + `source_platform` String COMMENT '来源平台', + `platform_order_no` String COMMENT '平台订单号', + `nickname` String COMMENT '昵称', + `consignee_name` String COMMENT '收货人名称', + `consignee_tel` String COMMENT '收货人电话', + `consignee_add` String COMMENT '收货人地址', + `province` String COMMENT '省', + `city` String COMMENT '市', + `region` String COMMENT '区', + `pay_time` String COMMENT '付款时间', + `deliver_time` String COMMENT '发货时间', + `mgclear_time` String COMMENT '钱货两清时间', + `main_logistic_bill` String COMMENT '主物流号', + `carrier` String COMMENT '承运商', + `order_retail_amt` Decimal(18, 2) COMMENT '订单零售金额', + `order_settle_amt` Decimal(18, 2) COMMENT '订单结算金额', + `order_freight_amt` Decimal(18, 2) COMMENT '订单运费金额', + `goods_barcode` String COMMENT '商品条码', + `goods_qty` Int64 COMMENT '商品数量', + `goods_price` Decimal(18, 2) COMMENT '商品单价', + `goods_amt` Decimal(18, 2) COMMENT '订单商品均摊金额', + `is_gift` String COMMENT '是否赠品' +) +ENGINE = ReplicatedMergeTree('/clickhouse/tables/audit_bi_pro/custom_online_sale_bill_local/{shard}', + '{replica}') +PARTITION BY toYYYYMM(toDate(order_date)) +ORDER BY system_order_no +SETTINGS index_granularity = 8192 +COMMENT '自定义电商销售'; + +-- +CREATE TABLE `audit_bi_pro`.`custom_online_sale_order` on cluster cluster2 +as `audit_bi_pro`.`custom_online_sale_order_local` +ENGINE = Distributed(cluster2,audit_bi_pro,custom_online_sale_order_local,hiveHash(system_order_no)) +COMMENT '自定义电商销售'; + +CREATE TABLE `audit_bi_pro`.`custom_online_sale_bill` on cluster cluster2 +as `audit_bi_pro`.`custom_online_sale_bill_local` +ENGINE = Distributed(cluster2,audit_bi_pro,custom_online_sale_bill_local,hiveHash(system_order_no)) +COMMENT '自定义电商销售'; + +--DROP TABLE audit_bi_pro.custom_online_sale_bill ON cluster cluster2; +-- 验证 +SELECT COUNT() FROM custom_online_sale_order_local; +SELECT COUNT() FROM custom_online_sale_order; +SELECT COUNT() FROM custom_online_sale_bill_local; +SELECT COUNT() FROM custom_online_sale_bill; + +-- 3 +TRUNCATE TABLE custom_online_sale_order_local; +TRUNCATE TABLE custom_online_sale_order_tmp_local; +-- 4 +TRUNCATE TABLE custom_online_sale_bill_local; + +-- 5 +INSERT INTO custom_online_sale_order_tmp_local +SELECT + source_system, + order_date, + brand_code, + order_time, + system_order_no, + store_code, + store_name, + manual_order, + is_swap_order, + source_platform, + platform_order_no_new AS platform_order_no, + nickname, + consignee_name, + consignee_tel, + consignee_add, + province, + city, + region, + pay_time, + deliver_time, + mgclear_time, + main_logistic_bill, + carrier, + + toDecimal64(if(i < k, order_retail_amt_quotient, order_retail_amt_quotient + order_retail_amt_remainder), 2) / 100 AS order_retail_amt, + toDecimal64(if(i < k, order_settle_amt_quotient, order_settle_amt_quotient + order_settle_amt_remainder), 2) / 100 AS order_settle_amt, + toDecimal64(if(i < k, order_freight_amt_quotient, order_freight_amt_quotient + order_freight_amt_remainder), 2) / 100 AS order_freight_amt, + goods_barcode, + if(i > (k - goods_qty_remainder), goods_qty_div + 1, goods_qty_div) AS t, + goods_price, + toDecimal64(if(i < k, goods_amt_quotient, goods_amt_quotient + goods_amt_remainder), 2) / 100 AS goods_amt, + is_gift +FROM ( + SELECT + splitByChar(',', platform_order_no) AS platform_order_no_array, + length(platform_order_no_array) AS k, + toInt64(k) AS k_dec, + + source_system, + order_date, + brand_code, + order_time, + system_order_no, + store_code, + store_name, + manual_order, + is_swap_order, + source_platform, + nickname, + consignee_name, + consignee_tel, + consignee_add, + province, + city, + region, + pay_time, + deliver_time, + mgclear_time, + main_logistic_bill, + carrier, + + order_retail_amt * 100 AS order_retail_amt_cents, + (toInt64(order_retail_amt_cents) div k_dec) AS order_retail_amt_quotient, + (toInt64(order_retail_amt_cents) % k_dec) AS order_retail_amt_remainder, + + order_settle_amt * 100 AS order_settle_amt_cents, + (toInt64(order_settle_amt_cents) div k_dec) AS order_settle_amt_quotient, + (toInt64(order_settle_amt_cents) % k_dec) AS order_settle_amt_remainder, + + order_freight_amt * 100 AS order_freight_amt_cents, + (toInt64(order_freight_amt_cents) div k_dec) AS order_freight_amt_quotient, + (toInt64(order_freight_amt_cents) % k_dec) AS order_freight_amt_remainder, + + goods_barcode, + + (goods_qty div k_dec) AS goods_qty_div, + (goods_qty % k_dec) AS goods_qty_remainder, + + goods_price, + + goods_amt * 100 AS goods_amt_cents, + (toInt64(goods_amt_cents) div k_dec) AS goods_amt_quotient, + (toInt64(goods_amt_cents) % k_dec) AS goods_amt_remainder, + + is_gift + FROM dwd_trade_hkaudit_ecommerce_sale_mt + WHERE source_system IN ('EC_HIS_NEW', 'EC_HIS2', 'E3PLUS_NEW2', 'JXHE3', 'SBZ_HIS') + OR (source_system = 'SBZE3' AND SUBSTR(system_order_no, 1, 4) <> 'XSDD' AND SUBSTR(system_order_no, 1, 5) <> 'XSJSD') +) +ARRAY JOIN platform_order_no_array AS platform_order_no_new, arrayEnumerate(platform_order_no_array) AS i; + +-- 6 +INSERT INTO custom_online_sale_bill_local +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE source_system IN ('PF_OCP_NEW', 'PF_ECP_NEW2', 'PF_YEP_NEW', 'PF_ESP_NEW') + OR (source_system = 'SBZE3' AND (SUBSTR(system_order_no, 1, 4) = 'XSDD' OR SUBSTR(system_order_no, 1, 5) = 'XSJSD')); + +-- 7处理手工单时间问题 +UPDATE custom_online_sale_order_tmp_local SET + order_time = deliver_time +WHERE source_system IN ('E3PLUS_NEW2', 'EC_HIS_NEW') AND manual_order = '是' AND deliver_time < order_time ; + +-- 7-2处理城市问题 +-- 省直辖县级行政区 -> 区域替换城市(其他区和空也直接换) +-- 湖北省直辖县 -> 区域替换城市(其它区也直接换) +-- 县 -> 省份替换城市 +-- 自治区直辖县级行政区划 -> 区域替换城市 +-- 省直辖县级行政区划 -> 区域替换城市(其他区和空也直接换) +-- 新疆维吾尔自治区直辖县 -> 区域替换城市 +-- 维吾尔自治区 -> 区域替换城市 +-- 河南省直辖县 -> 区域替换城市 +-- 市辖区 -> 省份替换城市 +-- 广东 -> 区域替换城市 +-- 湖北 -> 区域替换城市 +UPDATE custom_online_sale_order_tmp_local SET + city = region +WHERE city IN ('省直辖县级行政区', '湖北省直辖县', '自治区直辖县级行政区划', '省直辖县级行政区划', '新疆维吾尔自治区直辖县', '维吾尔自治区', '河南省直辖县', '广东', '湖北'); +UPDATE custom_online_sale_order_tmp_local SET + city = province +WHERE city IN ('县', '市辖区'); + +-- 7-3非EC的订单运费改为0 +UPDATE custom_online_sale_order_tmp_local SET + order_freight_amt = 0 +WHERE source_system NOT IN ('EC_HIS_NEW', 'EC_HIS2'); + +-- 7-4更新每个订单的时间为最小 +INSERT INTO custom_online_sale_order_local +SELECT t1.*, CASE WHEN t1.platform_order_no = '' THEN t1.order_time ELSE t2.order_time_t END +FROM custom_online_sale_order_tmp_local t1 LEFT JOIN ( + SELECT + store_code, + platform_order_no, + MIN(order_time) AS order_time_t + FROM custom_online_sale_order_tmp_local + GROUP BY store_code, platform_order_no +) t2 ON t1.store_code = t2.store_code AND t1.platform_order_no = t2.platform_order_no +WHERE t1.order_time < '2023-10-01 00:00:00'; + +INSERT INTO custom_online_sale_order_local +SELECT t1.*, CASE WHEN t1.platform_order_no = '' THEN t1.order_time ELSE t2.order_time_t END +FROM custom_online_sale_order_tmp_local t1 LEFT JOIN ( + SELECT + store_code, + platform_order_no, + MIN(order_time) AS order_time_t + FROM custom_online_sale_order_tmp_local + GROUP BY store_code, platform_order_no +) t2 ON t1.store_code = t2.store_code AND t1.platform_order_no = t2.platform_order_no +WHERE t1.order_time >= '2023-10-01 00:00:00' AND t1.order_time < '2025-01-01 00:00:00'; + +INSERT INTO custom_online_sale_order_local +SELECT t1.*, CASE WHEN t1.platform_order_no = '' THEN t1.order_time ELSE t2.order_time_t END +FROM custom_online_sale_order_tmp_local t1 LEFT JOIN ( + SELECT + store_code, + platform_order_no, + MIN(order_time) AS order_time_t + FROM custom_online_sale_order_tmp_local + GROUP BY store_code, platform_order_no +) t2 ON t1.store_code = t2.store_code AND t1.platform_order_no = t2.platform_order_no +WHERE t1.order_time >= '2025-01-01 00:00:00'; + +-- 验证 +SELECT * FROM custom_online_sale_order_local WHERE platform_order_no = ''; -- 1 -1 + +SELECT * FROM custom_online_sale_order_local WHERE platform_order_no IN ( +SELECT platform_order_no FROM custom_online_sale_order_local GROUP BY platform_order_no HAVING COUNT(DISTINCT order_time) > 1) ORDER BY platform_order_no; + +-- 验证 +SELECT source_system , system_order_no , platform_order_no , order_time , deliver_time , pay_time , mgclear_time, dateDiff('day', toDateTime(deliver_time), toDateTime(order_date)) +FROM dwd_trade_hkaudit_ecommerce_sale_mt dthesm WHERE source_system IN ('E3PLUS_NEW2', 'EC_HIS_NEW') AND manual_order = '是' AND deliver_time < order_time +order by dateDiff('day', toDateTime(deliver_time), toDateTime(order_date)) desc; +SELECT source_system, manual_order , COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt dthesm WHERE mgclear_time <> '' AND mgclear_time < order_time GROUP BY source_system, manual_order ; +-- +SELECT source_system, COUNT(DISTINCT system_order_no), SUM(goods_amt) FROM dwd_trade_hkaudit_ecommerce_sale_mt dthesm WHERE store_code = 'DHF3' AND SUBSTR(order_time, 1, 4) = '2024' GROUP BY source_system ; +SELECT source_system, COUNT(DISTINCT system_order_no), SUM(goods_amt) FROM custom_online_sale_order_local dthesm WHERE store_code = 'DHF3' AND SUBSTR(order_time, 1, 4) = '2024' GROUP BY source_system ; + +-- 验证数量 +SELECT * FROM custom_online_sale_order_local WHERE goods_amt < 0; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt dthesm WHERE platform_order_no LIKE '%2355572484400219372%'; + +SELECT * +FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE platform_order_no LIKE '%288800263395%'; +SELECT * +FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE platform_order_no = '284801595189'; +SELECT * +FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE platform_order_no LIKE '%288800263395%'; +SELECT * +FROM dwd_trade_hkaudit_ecommerce_sale_change_mt WHERE platform_order_no = '284801595189'; + +SELECT COUNT(DISTINCT platform_order_no) FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE source_system = 'SBZ_HIS' AND goods_amt < 0; +SELECT COUNT(DISTINCT platform_order_no) FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE source_system = 'SBZ_HIS' AND goods_amt < 0 AND SUBSTR(order_time, 1, 10) >= '2024-04-01'; +SELECT COUNT(DISTINCT platform_order_no) FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE source_system = 'SBZ_HIS' AND SUBSTR(order_time, 1, 10) >= '2024-04-01'; +SELECT DISTINCT source_system FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE goods_amt < 0; + +SELECT * FROM custom_online_sale_order_local WHERE platform_order_no = ''; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE platform_order_no = '' AND source_system = 'SBZE3'; +SELECT DISTINCT source_system FROM custom_online_sale_return_local WHERE platform_order_no = ''; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt dthesm WHERE system_order_no = 'BS5324000002102'; + +SELECT MIN(order_time), MAX(order_time) FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE source_system = 'SBZ_HIS'; + +SELECT * +FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE goods_amt < 0 AND source_system NOT LIKE 'PF%'; + +SELECT COUNT() FROM custom_online_sale_order_local WHERE source_system = 'SBZ_HIS' AND is_swap_order = '是'; + + +SELECT * FROM custom_online_sale_order_local WHERE source_system = 'EC_HIS_NEW' AND order_freight_amt > 0 ORDER BY platform_order_no ; + + +SELECT COUNT(DISTINCT system_order_no) FROM custom_online_sale_order_local; -- 99353755 +SELECT COUNT(DISTINCT system_order_no) FROM custom_online_sale_bill_local; -- 61136 +SELECT COUNT(DISTINCT system_order_no) FROM dwd_trade_hkaudit_ecommerce_sale_mt; -- 99414891 + +-- 8这个情况的账单在退货表,提取到销售表,和其他来源系统统一 3765512 +INSERT INTO custom_online_sale_bill_local +SELECT + source_system, + create_date, + brand_code, + create_time, + system_order_no, + store_code, + store_name, + '', + '否', + source_platform, + platform_order_no, + nickname, + consignee_name, + consignee_tel, + consignee_add, + province, + city, + region, + '', + '', + mgclear_time, + return_logistic_bill, + return_carrier, + 0, + 0, + return_freight_amt, + return_goods_barcode, + return_goods_qty, + 0, + return_goods_amt, + is_gift +FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE source_system = 'SBZE3' AND SUBSTR(system_order_no, 1, 5) = 'XSJSD'; + +-- 数据验证 +SELECT COUNT(platform_order_no) FROM custom_online_sale_local; +SELECT SUM(num) FROM ( +SELECT LENGTH(platform_order_no) - LENGTH(REPLACE(platform_order_no, ',', '')) + 1 AS num FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE store_code IN ('DAA0','DAB7','DX01','DPL1','DPL2','DPH2','DPH1','DPH3','DPH4','DPH5','DPH6','DPHD','DPHH','DPHL','DPHP','DPHN','DPHM','DPHR','DPHS','DPHQ','DPHT','DPHU','DPHV','DPHW','DPHX','DPHY','DPH0','DPA1','DPA2','DPA3','DPA4','DPA5','DPA6','DCA0','DCA9','DCD5','DCA7','DCB1','DCC7','DCC3','DCC5','DCE7','DCB7','DCD2','DCB0','DCD8','DCA5','DCF3','DCF4','DCF2','DCF5','DCF6','DCF8','DCF9','DCF1','DCG1','DCG3','DCG4','DCG5','DCH1','DCG6','DCG7','DCC1','DCG8','DCG9','DCH2','DCH3','DCH4','DCH5','DCH6','DCH7','DCH8','DCH9','DCL1','DCL2','DCL3','DCL4','DCL5','DCL6','DCL8','DCJ1','DCL9','DCJ2','DCJ5','DCJ3','DCJ4','DCJ6','DCJ7','DCJ9','DCK1','DCK2','DCK4','DCK5','DCK3','DCK6','DCK7','DCK8','DCK9','DCM2','DCM7','DCM1','DCM3','DCM4','DCM5','DCN2','DCN3','DCM9','DCM6','DCN1','DCN4','DCN5','DCN6','DCP4','DCN8','DCN9','DCP1','DCP7','DCP2','DCP5','DCP6','DCP8','DCP9','DCQ2','DCQ3','DCQ4','DCQ5','DCP3','DCQ8','DCQ6','DCQ7','DCQ9','DCR1','DCR3','DCR2','DCR4','DCR5','DC01','DC02','DC04','DC05','DC06','DC07','DC08','DC09','DC0A','DC0B','DC0C','DC0D','DC0E','DC0F','DC0G','DC0H','DC0J','DC0K','DC0L','DC0M','DC0N','DC0P','DC0Q','DC0R','DC0S','DC0T','DC0V','DC0U','DCN7','DC0X','DC0W','DC0Y','DC0Z','DC10','DC11','DC13','DC12','DC14','DC15','DC16','DC1A','DC17','DC1B','DC1C','DC1E','DC1D','DC1F','DC1G','DC1Q','DC1H','DC1J','DC1K','DC1L','DC1M','DC1N','DC1P','DC1R','DC1T','DFA5','DFB0','DFB5','DFC8','DFG4','DFC0','DFG2','DFG7','DFG3','DFG1','DFB3','DFF9','DFF3','DFB9','DFG8','DFH2','DFH1','DFH3','DFH4','DFH6','DFJ1','DFJ2','DFJ3','DFJ4','DFJ5','DFJ9','DFJ7','DFK1','DFJ6','DFJ8','DFK3','DF04','DFK2','DF05','DF07','DF0G','DF0E','DF0H','DF0K','DF0M','DF0D','DF06','DF0Q','DF0P','DF0N','DF0R','DF0F','DF0W','DF0T','DF0V','DF0J','DF0X','DF12','DK05','DK03','DK01','DK02','DK06','DK04','DK09','DK08','DK0B','DK0C','DK0A','DK0F','DK0D','DK0E','DK0G','DK0K','DK0L','DK0H','DGA0','DGA3','DGA5','DGA2','DGB4','DGA4','DGB1','DGA8','DGC9','DGD1','DGD2','DGD4','DGC4','DGC2','DGD5','DGD6','DGC6','DGB9','DGC7','DGD7','DGD8','DGD9','DGE1','DGD3','DGE2','DGE6','DGE5','DGE7','DGF1','DGE8','DGE9','DGF2','DGF3','DGF4','DGF5','DGF6','DGF8','DGF7','DGF9','DGG1','DGG2','DGG3','DGG4','DGG5','DGG6','DGG8','DGG7','DGH1','DGH2','DGH8','DGH9','DGH4','DGH3','DGH5','DGH6','DGH7','DGJ5','DGJ2','DGJ3','DGJ4','DGJ7','DGJ8','DGJ9','DGJ6','DGK2','DGK3','DGK8','DGK9','DGK4','DGK1','DGK5','DGK6','DGL2','DGL3','DGK7','DGL1','DGL5','DGJ1','DGL8','DGL9','DGL4','DGM2','DGL6','DGL7','DGN2','DGM3','DGM4','DGM5','DGM1','DGM8','DG01','DGM9','DGM6','DGN1','DGM7','DG05','DG02','DG04','DG0A','DG03','DGN3','DG06','DG08','DG0C','DG09','DG0B','DG07','DG0E','DG0F','DG0G','DG0Q','DG0N','DG0H','DG0J','DG0K','DG0L','DG0U','DG0V','DG0M','DG0P','DG0R','DG0S','DG10','DG11','DG0T','DG0W','DG13','DG0X','DG0Y','DG14','DG15','DG0Z','DG12','DG17','DG18','DG1A','DG1B','DG19','DG16','DG1D','DG1E','DG1G','DG1H','DG1F','DG1C','DG1K','DG1L','DG1R','DG1S','DG1M','DG1J','DG1U','DG1Q','DG1T','DG1V','DG1W','DG1N','DG1P','DG1X','DG1Y','DG23','DG1Z','DG25','DG20','DG22','DG26','DG21','DG24','DG27','DG29','DG2A','DG2F','DG2G','DG2B','DG28','DG2C','DG2D','DG2J','DG2K','DG2E','DG2H','DG2M','DG2N','DG2Q','DG2R','DG2P','DG2L','DG2T','DG2U','DG2Z','DG2V','DG2S','DG2W','DG2X','DG35','DG36','DG2Y','DG31','DG32','DG33','DG3B','DG3C','DG34','DG37','DH1D','DH3U','DH4H','DH4U','DH5K','DH5R','DH5U','DH5V','DH5Z','DH6R','DH6V','DH6Z','DH7R','DH7V','DH7Z','DHJ7','H5LX','DH1A','DH1C','DH1E','DH1G','DH1H','DH1J','DH1K','DH1M','DH1P','DH1Z','DH2C','DH2F','DH2G','DH2H','DH2J','DH2K','DH2M','DH2N','DH2R','DH2S','DH2V','DH3A','DH3D','DH3F','DH3G','DH3J','DH3R','DH3V','DH3Y','DH3Z','DH4C','DH4F','DH4J','DH4N','DH4V','DH4X','DH4Y','DH5A','DH5C','DH5F','DH5J','DH5N','DH5P','DH5W','DH5X','DH5Y','DH6A','DH6F','DH6H','DH6J','DH6S','DH7H','DH7J','DH7L','DH7P','DH7S','DH7W','DH7Y','DH8A','DH8D','DH8H','DH8L','DH8N','DH8P','DH8Q','DH8S','DH8V','DH8W','DH8Y','DH8Z','DH9A','DH9B','DH9H','DH9J','DH9N','DH9P','DH9Q','DH9S','DH9U','DH9V','DH9Z','DHA0','DHA1','DHA2','DHA3','DHA4','DHA5','DHA6','DHAB','DHAK','DHB1','DHB2','DHB3','DHB4','DHB5','DHB6','DHB8','DHC7','DHD9','DHE5','DHE6','DHE8','DHE9','DHF0','DHF2','DHF3','DHF6','DHF9','DHG6','DHG7','DHG8','DHG9','DHH0','DHH1','DHH6','DHH7','DHH8','DHH9','DHI1','DHI3','DHI4','DHI5','DHI6','DHI7','DHI8','DHJ1','DHJ5','DHJ6','DHK2','DHK8','DHK9','DHL0','DHL1','DHL2','DHL3','DHM5','DHM6','DHN2','DHN5','DHP9','DHQ8','DHR1','DHR9','DHS7','DHS9','DHT2','DHT3','DHT9','DHU1','DHU6','DHU7','DHU8','DHU9','DHW2','DHW3','DHW4','DHW5','DHW6','DHW7','DHW8','DHW9','DHX1','DHX3','DHX4','DHX5','DHY1','DHY2','DHY3','DHY4','DHY5','DHY6','DHZ2','DHZ3','DHZ4','DHZ6','DHZ7','DHZ8','DH8M','DH9M','DHAA','DHR6','DH1R','DH2E','DH3M','DH4S','DH6M','DH6X','DH8B','DH9D','DH9R','DH9W','DHAF','DHAG','DHAH','DHAI','DHAJ','DHAL','DHE4','DHI9','DHM7','DHAO','DHAP','DHAQ','DHN7','DHP2','DH1L','DH2X','DH3C','DH3N','DH6N','DH6Y','DH7N','DHAC','DHAM','DHAN','DHAU','DHAV','DHAW','DHAX','DHAY','DHBE','DHBF','DHBR','DHY9','DHBZ','DHCA','DHCB','DH2P','DH3P','DH4D','DH4Z','DHBG','DHBH','DHBJ','DHBT','DHBW','DHBX','DHC0','DHCG','DHCJ','DHCR','DHDW','DHE0','DHN6','DHP5','DHU2','DHDT','DHDU','DHDV','DH1V','DH5E','DH6E','DH7M','DH7X','DHBA','DHBB','DHCK','DHCL','DHCM','DHCN','DHCP','DHEE','DHEF','DHEA','DHEB','DHEC','DH1N','DH2L','DH4G','DHDY','DHEH','DHEQ','DHEV','DH2D','DHER','DHES','DHET','DH1W','DH4P','DH5S','DH6Q','DHBC','DHBV','DHBY','DHCF','DHEW','DHEX','DHEY','DHFH','DHFJ','DHFK','DH1S','DHAT','DHAZ','DHEK','DHEZ','DHFA','DHFB','DHFC','DHFD','DHFF','DHFL','DHFR','DHFS','DHFT','DHFY','DHFZ','DHGC','DHGD','DHGH','DHGJ','DHGK','DHGS','DHGW','DH1X','DHFP','DHGL','DHGT','DHGZ','DHHA','DHHB','DHHC','DHHE','DHN4','DHGV','DHGX','DHHM','DH2T','DHGF','DHGY','DHHH','DHHJ','DHHK','DHHQ','DHHR','DHHS','DHHT','DHHL','DHHN','DHJK','DHFM','DHHF','DHJE','DHJF','DHJG','DHJL','DHJQ','DHJH','DHJJ','DHCD','DHGE','DHJR','DHJV','DHKB','DHJW','DHJX','DHJY','DHKG','DHKX','DHKD','DHKK','DHKY','DHKT','DHKV','DHKW','DHLM','DH3L','DH7B','DHBD','DHFG','DHKL','DHKN','DHKP','DHKQ','DHKS','DHLB','DHLE','DHX9','DHLJ','DHLK','DHLL','DHNG','DHCC','DHGA','DHJS','DHJZ','DHLA','DHLG','DHLH','DHLT','DHLY','DHLZ','DHNB','DHNJ','DHNK','DHND','DHNE','DHNF','DHNV','DHLF','DHLU','DHMA','DHMW','DHMY','DHNP','DHNY','DHPB','DHPD','DHPK','DHPP','DHNR','DHNS','DHNT','DHRG','DHLN','DHLW','DHMV','DHNL','DHNW','DHNX','DHPE','DHPM','DHPS','DHPZ','DHQB','DHQP','DHQR','DHRC','DHRH','DHRJ','DHRK','DHRL','DHRM','DHRN','DHRD','DHRE','DHRF','DHRW','DHFV','DHNM','DHQD','DHSD','DHRT','DHRU','DHRV','DHSC','DHSN','DHSP','DHMK','DHMM','DHNZ','DHPA','DHRS','DHRX','DHRZ','DHSA','DHSG','DHSH','DHSJ','DHSQ','DHSS','DHST','DHSU','DHSV','DHSW','DHSX','DHSY','DHTA','DHTB','DHTC','DHTD','DHTE','DHTL','DHTM','DHSK','DHSL','DHSM','DHTJ','DHTK','DHTR','DHPV','DHQH','DHQY','DHRA','DHSE','DHSZ','DHTN','DHTP','DHTQ','DHTS','DHVK','DHTF','DHTG','DHTH','DHVV','DHVW','DHMC','DHNN','DHNQ','DHQF','DHQT','DHQW','DHSF','DHTW','DHVY','DHVZ','DHY8','DHUD','DHUE','DHVS','DHVT','DHVU','DHBN','DHKF','DHLS','DHMX','DHQJ','DHUF','DHUG','DHUH','DHUU','DHVB','DHVD','DHVX','DHUA','DHUB','DHUC','DHUW','DHUY','DHUZ','DHAD','DHHG','DHLV','DHPX','DHWC','DHWE','DHWF','DHWG','DHUV','DHUX','DHWR','DH03','DHQE','DHQM','DHUT','DHVE','DHWD','DHWL','DHWM','DHWN','DHWP','DHWQ','DHWS','DH06','DH07','DH0C','DH0H','DH0N','DHP8','DHTV','DHTZ','DH0U','DH08','DH09','DH0A','DH0B','DH0J','DH0P','DH0Z','DH10','DH11','DH12','DH13','DH14','DH15','DHQN','DHQV','DH0S','DH0T','DH0W','DH49','DH04','DH0M','DH16','DH51','DH52','DH53','DH54','DH56','DHRP','DHVC','DH46','DH47','DH48','DH62','DH0D','DH0E','DH0F','DH0R','DH0X','DH25','DH35','DH57','DH58','DH7C','DHQZ','DHVA','DH59','DH60','DH61','DH85','DH87','DH20','DH21','DH64','DH74','DH75','DH76','DH77','DH78','DH81','DH82','DH92','DH93','DH94','DH95','DH96','DHVP','DH84','DH86','DH91','DHFU','DHH2','DHHU','DH0G','DH55','DHJU','DHP0','DHPF','DHPU','DHQ0','DHQU','DHR0','DHTU','DHHD','DHHX','DHWW','DH0Y','DH9X','DHK0','DHKU','DHLC','DHLD','DHLP','DHM0','DHS0','DHT0','DHXA','DHXB','DHXC','DHXD','DHXE','DHGU','DHWU','DHWV','DHXJ','DH17','DH18','DHX0','DHXL','DHXM','DHXN','DHXP','DHXQ','DHXR','DHXS','DHXT','DHXU','DHXG','DHXH','DHXK','DHXW','DHXY','DH19','DH37','DH39','DHN0','DHNU','DHY0','DHYC','DHYD','DHYG','DHYH','DHXX','DHXZ','DHYM','DHYP','DHRR','DHYJ','DHYL','DHYS','DH99','DHYN','DHYQ','DHYU','DHYW','DH0L','DH4R','DHMT','DHWZ','DHXV','DHYV','DHYX','DHZE','DHZG','DHPQ','DHRQ','DHZL','DHZF','DHZH','DHZV','DHZX','DHMU','DHQQ','DHTT','DHXF','DHZM','DHZN','DHZQ','DHZR','DHZS','DHZZ','VH04','VH05','DHZW','DHZY','VH09','VH0B','DHU0','DHVJ','DHWA','VH01','VH02','VH07','DH00','VH0A','VH0C','VH0L','VH0P','DH22','DH3S','DH4W','DHTX','DHUS','DHZT','VH03','VH0F','VH0G','VH0H','VH0K','VH0Q','VH0R','VH0W','VH0M','VH0N','VH14','VH16','DH4M','DHAE','DHPH','VH0T','VH0U','VH0V','VH0Z','VH10','VH1A','VH1D','VH1E','VH1K','VH15','VH17','VH1L','VH1N','VH1U','VH1M','VH1P','VH1V','VH1W','DH8K','DHBM','VH0J','VH0X','VH1Q','VH1S','VH1Y','DBE7','DBE8','DBE9','DBA0','DBA3','DBA9','DBB3','DBB4','DBB5','DBC0','DBE4','DBE5','DBF1','DBE1','DBF2','DBF3','DBF4','DBF5','DBF6','DBF7','DBF8','DBG1','DBG2','DBG3','DBG4','DBG5','DBG6','DBG7','DBG8','DBG9','DBH1','DBH2','DBH3','DBH4','DBH5','DBH6','DBH7','DBH8','DBH9','DBJ1','DBJ2','DBJ3','DBJ4','DBJ5','DBJ6','DBJ7','DBJ8','DBJ9','DBK1','DBK2','DBK3','DBK4','DBK5','DBK6','DBK7','DBK8','DBK9','DBL1','DBL2','DBL3','DBL4','DBL5','DBL6','DBL7','DBL8','DBL9','DBM1','DBM2','DB01','DB02','DB03','DB06','DB04','DB05','DB07','DB08','DB09','DB0A','DB0B','DB0C','DB0D','DB0E','DB0F','DB0G','DB0H','DB0J','DB0K','DB0L','DB0M','DB0N','DB0P','DB0Q','DB0R','DB0S','DB0T','DB0U','DB0V','DB0W','DB0X','DB0Y','DB0Z','DB10','DB11','DB12','DB13','DB14','DB15','DB16','DB17','DB18','DB19','DB1A','DB1B','DB1C','DB1D','DB1E','DB1F','DB1G','DB1H','DB1J','DB1K','DB1L','DB1M','DB1N')); + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE platform_order_no LIKE '%,%'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE system_order_no = 'TM261600075604'; +SELECT * FROM custom_online_sale_local WHERE system_order_no = 'TM261600075604'; + +SELECT * +FROM (SELECT system_order_no, SUM(goods_amt) AS amt1 FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE store_code = 'DHF3' +GROUP BY system_order_no) a LEFT JOIN ( +SELECT system_order_no, SUM(goods_amt) AS amt2 FROM custom_online_sale_local +WHERE store_code = 'DHF3' +GROUP BY system_order_no) b ON a.system_order_no = b.system_order_no +WHERE ABS(amt1 - amt2) > 0; + +-- 9自定义退销本地表 +CREATE TABLE audit_bi_pro.custom_online_sale_return_local +( + `source_system` String COMMENT '来源系统', + `create_date` String COMMENT '创建日期', + `brand_code` String COMMENT '品牌编码', + `create_time` String COMMENT '创建时间', + `system_order_no` String COMMENT '系统订单号', + `store_code` String COMMENT '店铺编码', + `store_name` String COMMENT '店铺名称', + `association_order_no` String COMMENT '关联系统订单号', + `source_platform` String COMMENT '来源平台', + `platform_order_no` String COMMENT '平台订单号', + `nickname` String COMMENT '昵称', + `consignee_name` String COMMENT '收货人名称', + `consignee_tel` String COMMENT '收货人电话', + `consignee_add` String COMMENT '收货人地址', + `province` String COMMENT '省', + `city` String COMMENT '市', + `region` String COMMENT '区', + `return_freight_amt` Decimal(18,2) COMMENT '退款运费金额', + `return_carrier` String COMMENT '退款物流承运商', + `return_logistic_bill` String COMMENT '退款物流单号', + `return_reason` String COMMENT '平台退款原因', + `mgclear_time` String COMMENT '钱货两清时间', + `return_goods_code` String COMMENT '退货商品编码', + `return_goods_name` String COMMENT '退货商品名称', + `return_goods_barcode` String COMMENT '退货商品条码', + `return_goods_qty` Int64 COMMENT '退货商品数量', + `return_goods_amt` Decimal(18,2) COMMENT '退货单商品均摊退货金额', + `is_gift` String COMMENT '是否赠品' +) +ENGINE = ReplicatedMergeTree('/clickhouse/tables/audit_bi_pro/custom_online_sale_return_local/{shard}', + '{replica}') +PARTITION BY toYYYYMM(toDate(create_date)) +ORDER BY system_order_no +SETTINGS index_granularity = 8192 +COMMENT '自定义电商退销'; + +-- 9自定义退销本地表 +CREATE TABLE audit_bi_pro.custom_online_sale_return_tmp_local +( + `source_system` String COMMENT '来源系统', + `create_date` String COMMENT '创建日期', + `brand_code` String COMMENT '品牌编码', + `create_time` String COMMENT '创建时间', + `system_order_no` String COMMENT '系统订单号', + `store_code` String COMMENT '店铺编码', + `store_name` String COMMENT '店铺名称', + `association_order_no` String COMMENT '关联系统订单号', + `source_platform` String COMMENT '来源平台', + `platform_order_no` String COMMENT '平台订单号', + `nickname` String COMMENT '昵称', + `consignee_name` String COMMENT '收货人名称', + `consignee_tel` String COMMENT '收货人电话', + `consignee_add` String COMMENT '收货人地址', + `province` String COMMENT '省', + `city` String COMMENT '市', + `region` String COMMENT '区', + `return_freight_amt` Decimal(18,2) COMMENT '退款运费金额', + `return_carrier` String COMMENT '退款物流承运商', + `return_logistic_bill` String COMMENT '退款物流单号', + `return_reason` String COMMENT '平台退款原因', + `mgclear_time` String COMMENT '钱货两清时间', + `return_goods_code` String COMMENT '退货商品编码', + `return_goods_name` String COMMENT '退货商品名称', + `return_goods_barcode` String COMMENT '退货商品条码', + `return_goods_qty` Int64 COMMENT '退货商品数量', + `return_goods_amt` Decimal(18,2) COMMENT '退货单商品均摊退货金额', + `is_gift` String COMMENT '是否赠品' +) +ENGINE = ReplicatedMergeTree('/clickhouse/tables/audit_bi_pro/custom_online_sale_return_tmp_local/{shard}', + '{replica}') +PARTITION BY toYYYYMM(toDate(create_date)) +ORDER BY system_order_no +SETTINGS index_granularity = 8192 +COMMENT '自定义电商退销-临时'; + +-- 10 +TRUNCATE TABLE custom_online_sale_return_local; +TRUNCATE TABLE custom_online_sale_return_tmp_local; + +-- 10-2退款中单号为空的补单号进去,通过销售系统 +INSERT INTO custom_online_sale_return_tmp_local +SELECT + source_system, + create_date, + brand_code, + create_time, + system_order_no, + store_code, + store_name, + association_order_no, + source_platform, + CASE + WHEN platform_order_no = '' AND platform_order_no_t <> '' THEN platform_order_no_t + ELSE platform_order_no + END, + nickname, + consignee_name, + consignee_tel, + consignee_add, + province, + city, + region, + return_freight_amt, + return_carrier, + return_logistic_bill, + return_reason, + mgclear_time, + return_goods_code, + return_goods_name, + return_goods_barcode, + return_goods_qty, + return_goods_amt, + is_gift +FROM dwd_trade_hkaudit_ecommerce_sale_return_mt t1 +LEFT JOIN (SELECT store_code, system_order_no, MAX(platform_order_no) AS platform_order_no_t + FROM dwd_trade_hkaudit_ecommerce_sale_mt GROUP BY store_code, system_order_no +) t2 ON t1.store_code = t2.store_code AND t1.association_order_no = t2.system_order_no; + +-- SBZE3 存在部分已经拆单的?1211 +SELECT store_code, system_order_no, MAX(source_system) FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE platform_order_no <> '' GROUP BY store_code, system_order_no HAVING COUNT(DISTINCT platform_order_no) > 1; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE platform_order_no <> '' AND store_code = 'SF00692' AND system_order_no = 'BS5513000011955'; +SELECT * FROM custom_online_sale_order_local WHERE platform_order_no <> '' AND store_code = 'SF00692' AND system_order_no = 'BS5513000011955'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE association_order_no IN ( + SELECT system_order_no FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE platform_order_no <> '' GROUP BY store_code, system_order_no HAVING COUNT(DISTINCT platform_order_no) > 1 +); + +-- 11 23344611 +INSERT INTO custom_online_sale_return_local +SELECT + source_system, + create_date, + brand_code, + create_time, + system_order_no, + store_code, + store_name, + association_order_no, + source_platform, + platform_order_no_new AS platform_order_no, + nickname, + consignee_name, + consignee_tel, + consignee_add, + province, + city, + region, + + toDecimal64(if(i < k, return_freight_amt_quotient, return_freight_amt_quotient + return_freight_amt_remainder), 2) / 100 AS return_freight_amt, + + return_carrier, + return_logistic_bill, + return_reason, + mgclear_time, + return_goods_code, + return_goods_name, + return_goods_barcode, + + if(i > (k - return_goods_qty_remainder), return_goods_qty_div + 1, return_goods_qty_div) AS t, + toDecimal64(if(i < k, return_goods_amt_quotient, return_goods_amt_quotient + return_goods_amt_remainder), 2) / 100 AS return_goods_amt, + + is_gift +FROM ( + SELECT + splitByChar(',', platform_order_no) AS platform_order_no_array, + length(platform_order_no_array) AS k, + toInt64(k) AS k_dec, + + source_system, + create_date, + brand_code, + create_time, + system_order_no, + store_code, + store_name, + association_order_no, + source_platform, + nickname, + consignee_name, + consignee_tel, + consignee_add, + province, + city, + region, + + return_freight_amt * 100 AS return_freight_amt_cents, + (toInt64(return_freight_amt_cents) div k_dec) AS return_freight_amt_quotient, + (toInt64(return_freight_amt_cents) % k_dec) AS return_freight_amt_remainder, + + return_carrier, + return_logistic_bill, + return_reason, + mgclear_time, + return_goods_code, + return_goods_name, + return_goods_barcode, + + (return_goods_qty div k_dec) AS return_goods_qty_div, + (return_goods_qty % k_dec) AS return_goods_qty_remainder, + + return_goods_amt * 100 AS return_goods_amt_cents, + (toInt64(return_goods_amt_cents) div k_dec) AS return_goods_amt_quotient, + (toInt64(return_goods_amt_cents) % k_dec) AS return_goods_amt_remainder, + + is_gift + FROM custom_online_sale_return_tmp_local + WHERE NOT (source_system = 'SBZE3' AND SUBSTR(system_order_no, 1, 5) = 'XSJSD') +) +ARRAY JOIN platform_order_no_array AS platform_order_no_new, arrayEnumerate(platform_order_no_array) AS i; + +-- 11-2非EC的订单运费改为0 +UPDATE custom_online_sale_return_local SET + return_freight_amt = 0 +WHERE source_system NOT IN ('EC_HIS_NEW', 'EC_HIS2'); + +SELECT * FROM custom_online_sale_return_local WHERE return_freight_amt <> 0 AND source_system IN ('EC_HIS_NEW', 'EC_HIS2'); + +-- 销售order和bill中店铺和退款店铺一致性问题 DYE2 +SELECT * FROM custom_online_sale_bill_local WHERE store_code IN (SELECT DISTINCT store_code FROM custom_online_sale_return_local); +SELECT * FROM custom_online_sale_bill_local WHERE store_code IN (SELECT DISTINCT store_code FROM custom_online_sale_order_local); + +SELECT * FROM custom_online_sale_return_local WHERE store_code = 'SF00891'; +SELECT * FROM custom_online_sale_order_local WHERE store_code = 'SF00891'; + +SELECT * FROM custom_online_sale_bill_local WHERE store_code = 'SF00891'; + + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE system_order_no LIKE 'JXMHDD%'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE system_order_no LIKE 'XSJSD%' AND source_system LIKE 'SBZ%'; + +-- 验证数量 21872332 +SELECT COUNT(DISTINCT system_order_no) FROM custom_online_sale_return_local; + +-- +SELECT * FROM custom_online_sale_return_local WHERE platform_order_no = ''; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE system_order_no ='BS5101000010785'; +SELECT * FROM custom_online_sale_order_local WHERE platform_order_no = ''; +SELECT source_system, COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE platform_order_no = '' AND source_system LIKE 'SBZ%' GROUP BY source_system; +SELECT source_system, COUNT() FROM custom_online_sale_return_local WHERE platform_order_no = '' AND source_system LIKE 'SBZ%' GROUP BY source_system; + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE platform_order_no = '' AND source_system LIKE 'SBZ_HI%'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE platform_order_no = '' AND source_system LIKE 'SBZ_HI%'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE platform_order_no = '' AND source_system LIKE 'SBZE%'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE platform_order_no = '' AND source_system LIKE 'SBZE%' + AND system_order_no IN (SELECT system_order_no FROM dwd_trade_hkaudit_ecommerce_sale_mt); +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE platform_order_no = '' AND source_system LIKE 'SBZE%' + AND association_order_no IN (SELECT system_order_no FROM dwd_trade_hkaudit_ecommerce_sale_mt); + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE source_system = 'SBZ_HIS'; + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE system_order_no = '11040230047404'; + + + +-- 218712500 +SELECT COUNT(DISTINCT system_order_no) FROM dwd_trade_hkaudit_ecommerce_sale_return_mt; + +-- 12自定义发货调整本地表 +CREATE TABLE audit_bi_pro.custom_online_sale_change_local +( + `source_system` String COMMENT '来源系统', + `create_date` String COMMENT '创建日期', + `brand_code` String COMMENT '品牌编码', + `create_time` String COMMENT '创建时间', + `system_order_no` String COMMENT '系统订单号', + `store_code` String COMMENT '店铺编码', + `store_name` String COMMENT '店铺名称', + `source_platform` String COMMENT '来源平台', + `platform_order_no` String COMMENT '平台订单号', + `mgclear_time` String COMMENT '钱货两清时间', + `special_barcode` String COMMENT '特殊条码', + `goods_qty` Int64 COMMENT '商品数量', + `special_barcode_amt` Decimal(18, 2) COMMENT '特殊条码均摊金额' +) +ENGINE = ReplicatedMergeTree('/clickhouse/tables/audit_bi_pro/custom_online_sale_change_local/{shard}', + '{replica}') +PARTITION BY toYYYYMM(toDate(create_date)) +ORDER BY system_order_no +SETTINGS index_granularity = 8192 +COMMENT '自定义电商发货调整类型'; + +-- 13 +TRUNCATE TABLE custom_online_sale_change_local; + +--14 +INSERT INTO custom_online_sale_change_local +SELECT + source_system, + create_date, + brand_code, + create_time, + system_order_no, + store_code, + store_name, + source_platform, + platform_order_no_new AS platform_order_no, + mgclear_time, + special_barcode, + + if(i > (k - goods_qty_remainder), goods_qty_div + 1, goods_qty_div) AS t, + toDecimal64(if(i < k, special_barcode_amt_quotient, special_barcode_amt_quotient + special_barcode_amt_remainder), 2) / 100 AS special_barcode_amt +FROM ( + SELECT + splitByChar(',', platform_order_no) AS platform_order_no_array, + length(platform_order_no_array) AS k, + toInt64(k) AS k_dec, + + source_system, + create_date, + brand_code, + create_time, + system_order_no, + store_code, + store_name, + source_platform, + platform_order_no, + mgclear_time, + special_barcode, + + (goods_qty div k_dec) AS goods_qty_div, + (goods_qty % k_dec) AS goods_qty_remainder, + + special_barcode_amt * 100 AS special_barcode_amt_cents, + (toInt64(special_barcode_amt_cents) div k_dec) AS special_barcode_amt_quotient, + (toInt64(special_barcode_amt_cents) % k_dec) AS special_barcode_amt_remainder + + FROM dwd_trade_hkaudit_ecommerce_sale_change_mt + WHERE store_code IN ('DAA0','DAB7','DX01','DPL1','DPL2','DPH2','DPH1','DPH3','DPH4','DPH5','DPH6','DPHD','DPHH','DPHL','DPHP','DPHN','DPHM','DPHR','DPHS','DPHQ','DPHT','DPHU','DPHV','DPHW','DPHX','DPHY','DPH0','DPA1','DPA2','DPA3','DPA4','DPA5','DPA6','DCA0','DCA9','DCD5','DCA7','DCB1','DCC7','DCC3','DCC5','DCE7','DCB7','DCD2','DCB0','DCD8','DCA5','DCF3','DCF4','DCF2','DCF5','DCF6','DCF8','DCF9','DCF1','DCG1','DCG3','DCG4','DCG5','DCH1','DCG6','DCG7','DCC1','DCG8','DCG9','DCH2','DCH3','DCH4','DCH5','DCH6','DCH7','DCH8','DCH9','DCL1','DCL2','DCL3','DCL4','DCL5','DCL6','DCL8','DCJ1','DCL9','DCJ2','DCJ5','DCJ3','DCJ4','DCJ6','DCJ7','DCJ9','DCK1','DCK2','DCK4','DCK5','DCK3','DCK6','DCK7','DCK8','DCK9','DCM2','DCM7','DCM1','DCM3','DCM4','DCM5','DCN2','DCN3','DCM9','DCM6','DCN1','DCN4','DCN5','DCN6','DCP4','DCN8','DCN9','DCP1','DCP7','DCP2','DCP5','DCP6','DCP8','DCP9','DCQ2','DCQ3','DCQ4','DCQ5','DCP3','DCQ8','DCQ6','DCQ7','DCQ9','DCR1','DCR3','DCR2','DCR4','DCR5','DC01','DC02','DC04','DC05','DC06','DC07','DC08','DC09','DC0A','DC0B','DC0C','DC0D','DC0E','DC0F','DC0G','DC0H','DC0J','DC0K','DC0L','DC0M','DC0N','DC0P','DC0Q','DC0R','DC0S','DC0T','DC0V','DC0U','DCN7','DC0X','DC0W','DC0Y','DC0Z','DC10','DC11','DC13','DC12','DC14','DC15','DC16','DC1A','DC17','DC1B','DC1C','DC1E','DC1D','DC1F','DC1G','DC1Q','DC1H','DC1J','DC1K','DC1L','DC1M','DC1N','DC1P','DC1R','DC1T','DFA5','DFB0','DFB5','DFC8','DFG4','DFC0','DFG2','DFG7','DFG3','DFG1','DFB3','DFF9','DFF3','DFB9','DFG8','DFH2','DFH1','DFH3','DFH4','DFH6','DFJ1','DFJ2','DFJ3','DFJ4','DFJ5','DFJ9','DFJ7','DFK1','DFJ6','DFJ8','DFK3','DF04','DFK2','DF05','DF07','DF0G','DF0E','DF0H','DF0K','DF0M','DF0D','DF06','DF0Q','DF0P','DF0N','DF0R','DF0F','DF0W','DF0T','DF0V','DF0J','DF0X','DF12','DK05','DK03','DK01','DK02','DK06','DK04','DK09','DK08','DK0B','DK0C','DK0A','DK0F','DK0D','DK0E','DK0G','DK0K','DK0L','DK0H','DGA0','DGA3','DGA5','DGA2','DGB4','DGA4','DGB1','DGA8','DGC9','DGD1','DGD2','DGD4','DGC4','DGC2','DGD5','DGD6','DGC6','DGB9','DGC7','DGD7','DGD8','DGD9','DGE1','DGD3','DGE2','DGE6','DGE5','DGE7','DGF1','DGE8','DGE9','DGF2','DGF3','DGF4','DGF5','DGF6','DGF8','DGF7','DGF9','DGG1','DGG2','DGG3','DGG4','DGG5','DGG6','DGG8','DGG7','DGH1','DGH2','DGH8','DGH9','DGH4','DGH3','DGH5','DGH6','DGH7','DGJ5','DGJ2','DGJ3','DGJ4','DGJ7','DGJ8','DGJ9','DGJ6','DGK2','DGK3','DGK8','DGK9','DGK4','DGK1','DGK5','DGK6','DGL2','DGL3','DGK7','DGL1','DGL5','DGJ1','DGL8','DGL9','DGL4','DGM2','DGL6','DGL7','DGN2','DGM3','DGM4','DGM5','DGM1','DGM8','DG01','DGM9','DGM6','DGN1','DGM7','DG05','DG02','DG04','DG0A','DG03','DGN3','DG06','DG08','DG0C','DG09','DG0B','DG07','DG0E','DG0F','DG0G','DG0Q','DG0N','DG0H','DG0J','DG0K','DG0L','DG0U','DG0V','DG0M','DG0P','DG0R','DG0S','DG10','DG11','DG0T','DG0W','DG13','DG0X','DG0Y','DG14','DG15','DG0Z','DG12','DG17','DG18','DG1A','DG1B','DG19','DG16','DG1D','DG1E','DG1G','DG1H','DG1F','DG1C','DG1K','DG1L','DG1R','DG1S','DG1M','DG1J','DG1U','DG1Q','DG1T','DG1V','DG1W','DG1N','DG1P','DG1X','DG1Y','DG23','DG1Z','DG25','DG20','DG22','DG26','DG21','DG24','DG27','DG29','DG2A','DG2F','DG2G','DG2B','DG28','DG2C','DG2D','DG2J','DG2K','DG2E','DG2H','DG2M','DG2N','DG2Q','DG2R','DG2P','DG2L','DG2T','DG2U','DG2Z','DG2V','DG2S','DG2W','DG2X','DG35','DG36','DG2Y','DG31','DG32','DG33','DG3B','DG3C','DG34','DG37','DH1D','DH3U','DH4H','DH4U','DH5K','DH5R','DH5U','DH5V','DH5Z','DH6R','DH6V','DH6Z','DH7R','DH7V','DH7Z','DHJ7','H5LX','DH1A','DH1C','DH1E','DH1G','DH1H','DH1J','DH1K','DH1M','DH1P','DH1Z','DH2C','DH2F','DH2G','DH2H','DH2J','DH2K','DH2M','DH2N','DH2R','DH2S','DH2V','DH3A','DH3D','DH3F','DH3G','DH3J','DH3R','DH3V','DH3Y','DH3Z','DH4C','DH4F','DH4J','DH4N','DH4V','DH4X','DH4Y','DH5A','DH5C','DH5F','DH5J','DH5N','DH5P','DH5W','DH5X','DH5Y','DH6A','DH6F','DH6H','DH6J','DH6S','DH7H','DH7J','DH7L','DH7P','DH7S','DH7W','DH7Y','DH8A','DH8D','DH8H','DH8L','DH8N','DH8P','DH8Q','DH8S','DH8V','DH8W','DH8Y','DH8Z','DH9A','DH9B','DH9H','DH9J','DH9N','DH9P','DH9Q','DH9S','DH9U','DH9V','DH9Z','DHA0','DHA1','DHA2','DHA3','DHA4','DHA5','DHA6','DHAB','DHAK','DHB1','DHB2','DHB3','DHB4','DHB5','DHB6','DHB8','DHC7','DHD9','DHE5','DHE6','DHE8','DHE9','DHF0','DHF2','DHF3','DHF6','DHF9','DHG6','DHG7','DHG8','DHG9','DHH0','DHH1','DHH6','DHH7','DHH8','DHH9','DHI1','DHI3','DHI4','DHI5','DHI6','DHI7','DHI8','DHJ1','DHJ5','DHJ6','DHK2','DHK8','DHK9','DHL0','DHL1','DHL2','DHL3','DHM5','DHM6','DHN2','DHN5','DHP9','DHQ8','DHR1','DHR9','DHS7','DHS9','DHT2','DHT3','DHT9','DHU1','DHU6','DHU7','DHU8','DHU9','DHW2','DHW3','DHW4','DHW5','DHW6','DHW7','DHW8','DHW9','DHX1','DHX3','DHX4','DHX5','DHY1','DHY2','DHY3','DHY4','DHY5','DHY6','DHZ2','DHZ3','DHZ4','DHZ6','DHZ7','DHZ8','DH8M','DH9M','DHAA','DHR6','DH1R','DH2E','DH3M','DH4S','DH6M','DH6X','DH8B','DH9D','DH9R','DH9W','DHAF','DHAG','DHAH','DHAI','DHAJ','DHAL','DHE4','DHI9','DHM7','DHAO','DHAP','DHAQ','DHN7','DHP2','DH1L','DH2X','DH3C','DH3N','DH6N','DH6Y','DH7N','DHAC','DHAM','DHAN','DHAU','DHAV','DHAW','DHAX','DHAY','DHBE','DHBF','DHBR','DHY9','DHBZ','DHCA','DHCB','DH2P','DH3P','DH4D','DH4Z','DHBG','DHBH','DHBJ','DHBT','DHBW','DHBX','DHC0','DHCG','DHCJ','DHCR','DHDW','DHE0','DHN6','DHP5','DHU2','DHDT','DHDU','DHDV','DH1V','DH5E','DH6E','DH7M','DH7X','DHBA','DHBB','DHCK','DHCL','DHCM','DHCN','DHCP','DHEE','DHEF','DHEA','DHEB','DHEC','DH1N','DH2L','DH4G','DHDY','DHEH','DHEQ','DHEV','DH2D','DHER','DHES','DHET','DH1W','DH4P','DH5S','DH6Q','DHBC','DHBV','DHBY','DHCF','DHEW','DHEX','DHEY','DHFH','DHFJ','DHFK','DH1S','DHAT','DHAZ','DHEK','DHEZ','DHFA','DHFB','DHFC','DHFD','DHFF','DHFL','DHFR','DHFS','DHFT','DHFY','DHFZ','DHGC','DHGD','DHGH','DHGJ','DHGK','DHGS','DHGW','DH1X','DHFP','DHGL','DHGT','DHGZ','DHHA','DHHB','DHHC','DHHE','DHN4','DHGV','DHGX','DHHM','DH2T','DHGF','DHGY','DHHH','DHHJ','DHHK','DHHQ','DHHR','DHHS','DHHT','DHHL','DHHN','DHJK','DHFM','DHHF','DHJE','DHJF','DHJG','DHJL','DHJQ','DHJH','DHJJ','DHCD','DHGE','DHJR','DHJV','DHKB','DHJW','DHJX','DHJY','DHKG','DHKX','DHKD','DHKK','DHKY','DHKT','DHKV','DHKW','DHLM','DH3L','DH7B','DHBD','DHFG','DHKL','DHKN','DHKP','DHKQ','DHKS','DHLB','DHLE','DHX9','DHLJ','DHLK','DHLL','DHNG','DHCC','DHGA','DHJS','DHJZ','DHLA','DHLG','DHLH','DHLT','DHLY','DHLZ','DHNB','DHNJ','DHNK','DHND','DHNE','DHNF','DHNV','DHLF','DHLU','DHMA','DHMW','DHMY','DHNP','DHNY','DHPB','DHPD','DHPK','DHPP','DHNR','DHNS','DHNT','DHRG','DHLN','DHLW','DHMV','DHNL','DHNW','DHNX','DHPE','DHPM','DHPS','DHPZ','DHQB','DHQP','DHQR','DHRC','DHRH','DHRJ','DHRK','DHRL','DHRM','DHRN','DHRD','DHRE','DHRF','DHRW','DHFV','DHNM','DHQD','DHSD','DHRT','DHRU','DHRV','DHSC','DHSN','DHSP','DHMK','DHMM','DHNZ','DHPA','DHRS','DHRX','DHRZ','DHSA','DHSG','DHSH','DHSJ','DHSQ','DHSS','DHST','DHSU','DHSV','DHSW','DHSX','DHSY','DHTA','DHTB','DHTC','DHTD','DHTE','DHTL','DHTM','DHSK','DHSL','DHSM','DHTJ','DHTK','DHTR','DHPV','DHQH','DHQY','DHRA','DHSE','DHSZ','DHTN','DHTP','DHTQ','DHTS','DHVK','DHTF','DHTG','DHTH','DHVV','DHVW','DHMC','DHNN','DHNQ','DHQF','DHQT','DHQW','DHSF','DHTW','DHVY','DHVZ','DHY8','DHUD','DHUE','DHVS','DHVT','DHVU','DHBN','DHKF','DHLS','DHMX','DHQJ','DHUF','DHUG','DHUH','DHUU','DHVB','DHVD','DHVX','DHUA','DHUB','DHUC','DHUW','DHUY','DHUZ','DHAD','DHHG','DHLV','DHPX','DHWC','DHWE','DHWF','DHWG','DHUV','DHUX','DHWR','DH03','DHQE','DHQM','DHUT','DHVE','DHWD','DHWL','DHWM','DHWN','DHWP','DHWQ','DHWS','DH06','DH07','DH0C','DH0H','DH0N','DHP8','DHTV','DHTZ','DH0U','DH08','DH09','DH0A','DH0B','DH0J','DH0P','DH0Z','DH10','DH11','DH12','DH13','DH14','DH15','DHQN','DHQV','DH0S','DH0T','DH0W','DH49','DH04','DH0M','DH16','DH51','DH52','DH53','DH54','DH56','DHRP','DHVC','DH46','DH47','DH48','DH62','DH0D','DH0E','DH0F','DH0R','DH0X','DH25','DH35','DH57','DH58','DH7C','DHQZ','DHVA','DH59','DH60','DH61','DH85','DH87','DH20','DH21','DH64','DH74','DH75','DH76','DH77','DH78','DH81','DH82','DH92','DH93','DH94','DH95','DH96','DHVP','DH84','DH86','DH91','DHFU','DHH2','DHHU','DH0G','DH55','DHJU','DHP0','DHPF','DHPU','DHQ0','DHQU','DHR0','DHTU','DHHD','DHHX','DHWW','DH0Y','DH9X','DHK0','DHKU','DHLC','DHLD','DHLP','DHM0','DHS0','DHT0','DHXA','DHXB','DHXC','DHXD','DHXE','DHGU','DHWU','DHWV','DHXJ','DH17','DH18','DHX0','DHXL','DHXM','DHXN','DHXP','DHXQ','DHXR','DHXS','DHXT','DHXU','DHXG','DHXH','DHXK','DHXW','DHXY','DH19','DH37','DH39','DHN0','DHNU','DHY0','DHYC','DHYD','DHYG','DHYH','DHXX','DHXZ','DHYM','DHYP','DHRR','DHYJ','DHYL','DHYS','DH99','DHYN','DHYQ','DHYU','DHYW','DH0L','DH4R','DHMT','DHWZ','DHXV','DHYV','DHYX','DHZE','DHZG','DHPQ','DHRQ','DHZL','DHZF','DHZH','DHZV','DHZX','DHMU','DHQQ','DHTT','DHXF','DHZM','DHZN','DHZQ','DHZR','DHZS','DHZZ','VH04','VH05','DHZW','DHZY','VH09','VH0B','DHU0','DHVJ','DHWA','VH01','VH02','VH07','DH00','VH0A','VH0C','VH0L','VH0P','DH22','DH3S','DH4W','DHTX','DHUS','DHZT','VH03','VH0F','VH0G','VH0H','VH0K','VH0Q','VH0R','VH0W','VH0M','VH0N','VH14','VH16','DH4M','DHAE','DHPH','VH0T','VH0U','VH0V','VH0Z','VH10','VH1A','VH1D','VH1E','VH1K','VH15','VH17','VH1L','VH1N','VH1U','VH1M','VH1P','VH1V','VH1W','DH8K','DHBM','VH0J','VH0X','VH1Q','VH1S','VH1Y','DBE7','DBE8','DBE9','DBA0','DBA3','DBA9','DBB3','DBB4','DBB5','DBC0','DBE4','DBE5','DBF1','DBE1','DBF2','DBF3','DBF4','DBF5','DBF6','DBF7','DBF8','DBG1','DBG2','DBG3','DBG4','DBG5','DBG6','DBG7','DBG8','DBG9','DBH1','DBH2','DBH3','DBH4','DBH5','DBH6','DBH7','DBH8','DBH9','DBJ1','DBJ2','DBJ3','DBJ4','DBJ5','DBJ6','DBJ7','DBJ8','DBJ9','DBK1','DBK2','DBK3','DBK4','DBK5','DBK6','DBK7','DBK8','DBK9','DBL1','DBL2','DBL3','DBL4','DBL5','DBL6','DBL7','DBL8','DBL9','DBM1','DBM2','DB01','DB02','DB03','DB06','DB04','DB05','DB07','DB08','DB09','DB0A','DB0B','DB0C','DB0D','DB0E','DB0F','DB0G','DB0H','DB0J','DB0K','DB0L','DB0M','DB0N','DB0P','DB0Q','DB0R','DB0S','DB0T','DB0U','DB0V','DB0W','DB0X','DB0Y','DB0Z','DB10','DB11','DB12','DB13','DB14','DB15','DB16','DB17','DB18','DB19','DB1A','DB1B','DB1C','DB1D','DB1E','DB1F','DB1G','DB1H','DB1J','DB1K','DB1L','DB1M','DB1N') +) +ARRAY JOIN platform_order_no_array AS platform_order_no_new, arrayEnumerate(platform_order_no_array) AS i; + +-- 数据验证 +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_change_mt WHERE platform_order_no LIKE '%,%'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_change_mt WHERE platform_order_no LIKE '%2686188457581570647%'; +SELECT * FROM custom_online_sale_change_local WHERE platform_order_no IN ('2686188457618570647','2686188457572570647','2686188457581570647'); + + +-- 按照下单时间 +SELECT + a.perTime, + a.store_code, + MAX(a.store_name), + SUM(a.sale_amount), + SUM(b.sale_refund_amount), + SUM(c.sale_change_amount), + SUM(d.order_freight_amt), + SUM(f.return_freight_amt) +FROM (SELECT + SUBSTR(order_date, 1, 7) AS perTime, + store_code, + MAX(store_name) AS store_name, + platform_order_no, + SUM(goods_amt) AS sale_amount +FROM custom_online_sale_local +GROUP BY SUBSTR(order_date, 1, 7), store_code, platform_order_no) a +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(order_freight_amt_t) AS order_freight_amt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MAX(order_freight_amt) AS order_freight_amt_t + FROM custom_online_sale_local + WHERE source_system = 'EC_HIS' AND order_freight_amt > 0 + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no +) d ON a.store_code = d.store_code AND a.platform_order_no = d.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(return_goods_amt) AS sale_refund_amount + FROM custom_online_sale_return_local + GROUP BY store_code, platform_order_no +) b ON a.store_code = b.store_code AND a.platform_order_no = b.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, MAX(return_freight_amt) AS return_freight_amt + FROM custom_online_sale_return_local + WHERE source_system = 'EC_HIS' + GROUP BY store_code, platform_order_no +) f ON a.store_code = f.store_code AND a.platform_order_no = f.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(special_barcode_amt) AS sale_change_amount + FROM custom_online_sale_change_local + GROUP BY store_code, platform_order_no +) c ON a.store_code = c.store_code AND a.platform_order_no = c.platform_order_no +GROUP BY a.perTime, a.store_code; + +-- 按照钱货两清时间 +SELECT + a.perTime, + a.store_code, + MAX(a.store_name), + SUM(a.sale_amount), + SUM(b.sale_refund_amount), + SUM(c.sale_change_amount), + SUM(d.order_freight_amt), + SUM(f.return_freight_amt) +FROM (SELECT + SUBSTR(mgclear_time, 1, 7) AS perTime, + store_code, + MAX(store_name) AS store_name, + platform_order_no, + SUM(goods_amt) AS sale_amount +FROM custom_online_sale_local +GROUP BY SUBSTR(mgclear_time, 1, 7), store_code, platform_order_no) a +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(order_freight_amt_t) AS order_freight_amt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MAX(order_freight_amt) AS order_freight_amt_t + FROM custom_online_sale_local + WHERE source_system = 'EC_HIS' AND order_freight_amt > 0 + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no +) d ON a.store_code = d.store_code AND a.platform_order_no = d.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(return_goods_amt) AS sale_refund_amount + FROM custom_online_sale_return_local + GROUP BY store_code, platform_order_no +) b ON a.store_code = b.store_code AND a.platform_order_no = b.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, MAX(return_freight_amt) AS return_freight_amt + FROM custom_online_sale_return_local + WHERE source_system = 'EC_HIS' + GROUP BY store_code, platform_order_no +) f ON a.store_code = f.store_code AND a.platform_order_no = f.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(special_barcode_amt) AS sale_change_amount + FROM custom_online_sale_change_local + GROUP BY store_code, platform_order_no +) c ON a.store_code = c.store_code AND a.platform_order_no = c.platform_order_no +GROUP BY a.perTime, a.store_code; + +SELECT + store_code, + SUBSTR(mgclear_time, 1, 7) AS perTime, + MAX(store_name) AS store_name, + SUM(goods_amt) AS sale_amount +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE store_code = 'DHF3' AND SUBSTR(mgclear_time, 1, 4) = '2024' +GROUP BY store_code, SUBSTR(mgclear_time, 1, 7); + +SELECT + store_code, + SUBSTR(mgclear_time, 1, 7) AS perTime, + SUM(return_goods_amt) AS sale_amount +FROM dwd_trade_hkaudit_ecommerce_sale_return_mt +WHERE store_code = 'DHF3' AND SUBSTR(mgclear_time, 1, 4) = '2024' +GROUP BY store_code, SUBSTR(mgclear_time, 1, 7); + +SELECT + store_code, + SUBSTR(mgclear_time, 1, 7) AS perTime, + SUM(special_barcode_amt) AS sale_amount +FROM dwd_trade_hkaudit_ecommerce_sale_change_mt +WHERE store_code = 'DHF3' AND SUBSTR(mgclear_time, 1, 4) = '2024' +GROUP BY store_code, SUBSTR(mgclear_time, 1, 7); + + +SELECT a.perTime, + a.store_code, + MAX(a.store_name), + SUM(a.sale_amount), + SUM(b.sale_refund_amount) +FROM (SELECT + store_code, + SUBSTR(mgclear_time, 1, 7) AS perTime, + platform_order_no, + MAX(store_name) AS store_name, + SUM(goods_amt) AS sale_amount +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE store_code = 'DHF3' AND SUBSTR(mgclear_time, 1, 4) = '2024' +GROUP BY store_code, SUBSTR(mgclear_time, 1, 7), platform_order_no) a +LEFT JOIN ( +SELECT + store_code, + platform_order_no, + SUM(return_goods_amt) AS sale_refund_amount +FROM dwd_trade_hkaudit_ecommerce_sale_return_mt +GROUP BY store_code, platform_order_no) b ON a.store_code = b.store_code AND a.platform_order_no = b.platform_order_no +GROUP BY a.store_code, a.perTime; + +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE order_time < '2022-01-01 00:00:00'; + +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE store_code = 'DHF3' AND order_time >= '2024-05-01 00:00:00' AND order_time < '2024-08-01 00:00:00'; + +SELECT COUNT(DISTINCT system_order_no) FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE store_code = 'DHF3' AND order_time >= '2024-05-01 00:00:00' AND order_time < '2024-08-01 00:00:00' AND order_freight_amt <> 0; + + +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_change_mt +WHERE store_code = 'DHF3' AND create_date >= '2024-05-01' AND create_date < '2024-08-01'; + + +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_return_mt +WHERE store_code = 'DHF3' AND create_date >= '2024-05-01' AND create_date < '2024-08-01'; + + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE store_name LIKE '%唯品会%' AND order_date >= '2024-05-01' AND order_date < '2024-08-01'; + +SELECT order_date, goods_barcode FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE store_code = 'DB0K' GROUP BY order_date, goods_barcode HAVING COUNT(goods_barcode) > 1; + +SELECT consignee_add FROM dwd_trade_hkaudit_ecommerce_sale_mt; + +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt; +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE consignee_add = ''; + + +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE consignee_add = '' AND (store_name LIKE '%唯品会%' OR store_name LIKE '%京东自营%'); + +SELECT store_code, MAX(store_name), COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE consignee_add = '' AND store_name NOT LIKE '%唯品会%' AND store_name NOT LIKE '%京东自营%' +GROUP BY store_code ; + + + + + diff --git a/数据分析/v3/正式-查询-下单时间(算换货) - 副本.sql b/数据分析/v3/正式-查询-下单时间(算换货) - 副本.sql new file mode 100644 index 0000000..eeb02a8 --- /dev/null +++ b/数据分析/v3/正式-查询-下单时间(算换货) - 副本.sql @@ -0,0 +1,1017 @@ +-- 1.1线上各店铺每年度销售金额、订单数量、订单均价 +-- 数量和单价只能计算有订单的,账单的不能算 +SELECT + SUBSTR(order_time_t, 1, 4) AS "年份", + store_code AS "店铺编码", + MAX(store_name_t) AS "店铺名称", + SUM(goods_amt_t) AS "销售金额(元)", + SUM(order_freight_amt_t) AS "运费金额(元)", + SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额(元)(包含运费)", + COUNT(DISTINCT platform_order_no) AS "订单数量", + ROUND((SUM(goods_amt_t) + SUM(order_freight_amt_t)) / COUNT(DISTINCT platform_order_no), 2) AS "订单均价(元)" +FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(min_order_time) AS order_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t + FROM custom_online_sale_order_local + WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30' + GROUP BY store_code, system_order_no, platform_order_no +) +GROUP BY SUBSTR(order_time_t, 1, 4), store_code +ORDER BY SUBSTR(order_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC; + +-- 账单店铺金额 +SELECT + SUBSTR(order_time, 1, 4) AS "年份", + store_code AS "店铺编码", + MAX(store_name) AS "店铺名称", + SUM(goods_amt) AS "销售金额(元)" +FROM custom_online_sale_bill_local +WHERE goods_amt >= 0 AND SUBSTR(order_time, 1, 10) >= '2022-01-01' AND SUBSTR(order_time, 1, 10) <= '2025-06-30' +GROUP BY SUBSTR(order_time, 1, 4), store_code +ORDER BY SUBSTR(order_time, 1, 4), SUM(goods_amt) DESC; + +------------------------------------------------------------------ +-- 1.2线上各店铺每年度净销售金额 +SELECT + SUBSTR(t1.orderTime, 1, 4) AS "年份", + t1.store_code AS "店铺编码", + MAX(t1.storeName) AS "店铺名称", + SUM(t1.goodsAmt) AS "销售金额(元)", + SUM(t1.orderFreightAmt) AS "运费金额(元)", + SUM(t2.returnGoodsAmt) AS "退货金额(元)", + SUM(t2.returnFreightAmt) AS "退货运费金额(元)", + SUM(t3.orderChangeAmt) AS "发货调整金额(元)", + SUM(t1.goodsAmt) + SUM(t1.orderFreightAmt) + SUM(t2.returnGoodsAmt) + + SUM(t2.returnFreightAmt) + SUM(t3.orderChangeAmt) AS "净销售金额(元)" +FROM ( + SELECT + store_code, + MAX(store_name_t) AS storeName, + platform_order_no, + MIN(order_time_t) AS orderTime, + SUM(goods_amt_t) AS goodsAmt, + SUM(order_freight_amt_t) AS orderFreightAmt + FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(min_order_time) AS order_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t + FROM custom_online_sale_order_local + WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30' + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no +) t1 LEFT JOIN ( + SELECT store_code, platform_order_no, + SUM(return_freight_amt_t) AS returnFreightAmt, + SUM(return_goods_amt_t) AS returnGoodsAmt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MAX(return_freight_amt) AS return_freight_amt_t, + SUM(return_goods_qty) AS return_goods_qty_t, + SUM(return_goods_amt) AS return_goods_amt_t + FROM custom_online_sale_return_local + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no +) t2 ON t1.store_code = t2.store_code AND t1.platform_order_no = t2.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(special_barcode_amt) AS orderChangeAmt + FROM custom_online_sale_change_local + GROUP BY store_code, platform_order_no +) t3 ON t1.store_code = t3.store_code AND t1.platform_order_no = t3.platform_order_no +GROUP BY SUBSTR(t1.orderTime, 1, 4), t1.store_code +ORDER BY SUBSTR(t1.orderTime, 1, 4), SUM(t1.goodsAmt) + SUM(t1.orderFreightAmt) + SUM(t2.returnGoodsAmt) + + SUM(t2.returnFreightAmt) + SUM(t3.orderChangeAmt) DESC; + +-- 账单店铺金额 +SELECT + t1.perYear AS "年份", + t1.store_code AS "店铺编码", + t1.store_name AS "店铺名称", + t1.sale_amount AS "销售金额(元)", + t2.return_amount AS "退货金额(元)", + t1.sale_amount + t2.return_amount AS "净销售金额(元)" +FROM (SELECT + SUBSTR(order_time, 1, 4) AS perYear, + store_code, + MAX(store_name) AS store_name, + SUM(goods_amt) AS sale_amount + FROM custom_online_sale_bill_local + WHERE goods_amt >= 0 AND SUBSTR(order_time, 1, 10) >= '2022-01-01' AND SUBSTR(order_time, 1, 10) <= '2025-06-30' + GROUP BY SUBSTR(order_time, 1, 4), store_code +) t1 LEFT JOIN ( + SELECT + SUBSTR(order_time, 1, 4) AS perYear, + store_code, + SUM(goods_amt) AS return_amount + FROM custom_online_sale_bill_local + WHERE goods_amt < 0 AND SUBSTR(order_time, 1, 10) >= '2022-01-01' AND SUBSTR(order_time, 1, 10) <= '2025-06-30' + GROUP BY SUBSTR(order_time, 1, 4), store_code +) t2 ON t1.perYear = t2.perYear AND t1.store_code = t2.store_code +ORDER BY t1.perYear, (t1.sale_amount + t2.return_amount) DESC; + +------------------------------------------------------------------ +-- 1.3线上各店铺每年月度销售金额 +SELECT + SUBSTR(order_time_t, 1, 4) AS "年份", + SUBSTR(order_time_t, 6, 2) AS "月份", + store_code AS "店铺编码", + MAX(store_name_t) AS "店铺名称", + SUM(goods_amt_t) AS "销售金额(元)", + SUM(order_freight_amt_t) AS "运费金额(元)", + SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额(元)(包含运费)", + COUNT(DISTINCT platform_order_no) AS "订单数量", + ROUND((SUM(goods_amt_t) + SUM(order_freight_amt_t)) / COUNT(DISTINCT platform_order_no), 2) AS "订单均价(元)" +FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(min_order_time) AS order_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t + FROM custom_online_sale_order_local + WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30' + GROUP BY store_code, system_order_no, platform_order_no +) +GROUP BY SUBSTR(order_time_t, 1, 4), SUBSTR(order_time_t, 6, 2), store_code +ORDER BY SUBSTR(order_time_t, 1, 4), store_code, SUBSTR(order_time_t, 6, 2); + +-- 账单店铺金额 +SELECT + SUBSTR(order_time, 1, 4) AS "年份", + SUBSTR(order_time, 6, 2) AS "月份", + store_code AS "店铺编码", + MAX(store_name) AS "店铺名称", + SUM(goods_amt) AS "销售金额(元)" +FROM custom_online_sale_bill_local +WHERE goods_amt >= 0 AND SUBSTR(order_time, 1, 10) >= '2022-01-01' AND SUBSTR(order_time, 1, 10) <= '2025-06-30' +GROUP BY SUBSTR(order_time, 1, 4), SUBSTR(order_time, 6, 2), store_code +ORDER BY SUBSTR(order_time, 1, 4), store_code, SUBSTR(order_time, 6, 2); + +------------------------------------------------------------------ +-- 1.4线上每年前五店铺金额分布 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 1.5线上每年各产品数量、产品销售金额 +-- 订单中6条商品为空的, 忽略 +SELECT COUNT() FROM custom_online_sale_order_local WHERE goods_barcode =''; + +SELECT * FROM custom_online_sale_order_local; + +SELECT * FROM dim_hkaudit_goods_mt WHERE barcode IN ( +SELECT barcode +FROM dim_hkaudit_goods_mt GROUP BY barcode HAVING COUNT(DISTINCT goods_code) > 1) +ORDER By barcode ; + +SELECT * FROM dim_hkaudit_goods_mt dhgm WHERE barcode = 'VRDBJ41159A01001A11'; +SELECT * FROM dim_hkaudit_goods_mt WHERE goods_code IN (SELECT goods_barcode FROM audit_bi_pro.custom_online_sale_order_local); + + +SELECT * FROM dim_hkaudit_goods_mt a left join custom_online_sale_order_local b on a.barcode = b.goods_barcode ; + +SELECT COUNT() FROM dim_hkaudit_goods_mt; +SELECT COUNT() FROM dim_hkaudit_goods_mt_local; + +-- 不关联商品名称(每个表单独算) +--SELECT +-- SUBSTR(min_order_time, 1, 4) AS "年份", +-- goods_barcode AS "商品条码", +-- SUM(goods_qty) AS "商品数量", +-- SUM(goods_amt) AS "商品销售金额(元)" +--FROM custom_online_sale_order_local +--WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30' +--GROUP BY SUBSTR(min_order_time, 1, 4), goods_barcode +--ORDER BY SUBSTR(min_order_time, 1, 4), SUM(goods_amt) DESC; + +-- 账单店铺金额 +--SELECT +-- SUBSTR(order_time, 1, 4) AS "年份", +-- goods_barcode AS "商品条码", +-- SUM(goods_qty) AS "商品数量", +-- SUM(goods_amt) AS "商品销售金额(元)" +--FROM custom_online_sale_bill_local +--WHERE goods_amt >= 0 AND SUBSTR(order_time, 1, 10) >= '2022-01-01' AND SUBSTR(order_time, 1, 10) <= '2025-06-30' +--GROUP BY SUBSTR(order_time, 1, 4), goods_barcode +--ORDER BY SUBSTR(order_time, 1, 4), SUM(goods_amt) DESC; + +-- 关联名称 +--SELECT +-- SUBSTR(t1.min_order_time, 1, 4) AS "年份", +-- t1.goods_barcode AS "商品条码", +-- MAX(t2.goods_names) AS "商品名称(多个合并)", +-- SUM(t1.goods_qty) AS "商品数量", +-- SUM(t1.goods_amt) AS "商品销售金额(元)" +--FROM custom_online_sale_order_local t1 +--LEFT JOIN (SELECT barcode, arrayStringConcat(groupArray(goods_desc), ',') AS goods_names FROM dim_hkaudit_goods_mt GROUP BY barcode +--) t2 ON t1.goods_barcode = t2.barcode +--WHERE SUBSTR(t1.min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(t1.min_order_time, 1, 10) <= '2025-06-30' +--GROUP BY SUBSTR(t1.min_order_time, 1, 4), t1.goods_barcode +--ORDER BY SUBSTR(t1.min_order_time, 1, 4), SUM(t1.goods_amt) DESC; + +---------------------- +-- 不关联商品名称(两表合并算) +--SELECT +-- perYear AS "年份", +-- goods_barcode AS "商品条码", +-- SUM(goods_qty) AS "商品数量", +-- SUM(goods_amt) AS "商品销售金额(元)" +--FROM (SELECT +-- SUBSTR(min_order_time, 1, 4) AS perYear, +-- goods_barcode, +-- goods_qty, +-- goods_amt +-- FROM custom_online_sale_order_local +-- WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30' +-- UNION ALL +-- SELECT +-- SUBSTR(order_time, 1, 4) AS perYear, +-- goods_barcode, +-- goods_qty, +-- goods_amt +-- FROM custom_online_sale_bill_local +-- WHERE goods_amt >= 0 AND SUBSTR(order_time, 1, 10) >= '2022-01-01' AND SUBSTR(order_time, 1, 10) <= '2025-06-30' +--) +--GROUP BY perYear, goods_barcode +--ORDER BY perYear, SUM(goods_amt) DESC; + +-- 关联商品名称 +SELECT + t1.perYear AS "年份", + t1.goods_barcode AS "商品条码", + MAX(t2.goods_names) AS "商品名称(多个合并)", + SUM(t1.goods_qty) AS "商品数量", + SUM(t1.goods_amt) AS "商品销售金额(元)" +FROM (SELECT + SUBSTR(min_order_time, 1, 4) AS perYear, + goods_barcode, + goods_qty, + goods_amt + FROM custom_online_sale_order_local + WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30' + UNION ALL + SELECT + SUBSTR(order_time, 1, 4) AS perYear, + goods_barcode, + goods_qty, + goods_amt + FROM custom_online_sale_bill_local + WHERE goods_amt >= 0 AND SUBSTR(order_time, 1, 10) >= '2022-01-01' AND SUBSTR(order_time, 1, 10) <= '2025-06-30' +) t1 LEFT JOIN ( + SELECT barcode, arrayStringConcat(groupArray(goods_desc), ',') AS goods_names FROM dim_hkaudit_goods_mt GROUP BY barcode +) t2 ON t1.goods_barcode = t2.barcode +GROUP BY t1.perYear, t1.goods_barcode +ORDER BY t1.perYear, SUM(t1.goods_amt) DESC; + +------------------------------------------------------------------ +-- 2.1线上每年各省份销售金额、订单数量及其占比 +-- 1234791条平台订单没有省份 +SELECT COUNT(DISTINCT platform_order_no) FROM custom_online_sale_order_local WHERE province = ''; +SELECT source_system, COUNT(DISTINCT platform_order_no) FROM custom_online_sale_order_local WHERE province = '' GROUP BY source_system; +-- 只能计算有订单的,账单的不能算(没有省份) +-- 考虑店铺单号重复问题 非换货单有946单重复,加上换货单有1229条重复 +-- 忽略省份为空的平台订单 +-- 同一平台订单号在多个店铺存在的有1230单 暂时不考虑这种情况 +SELECT COUNT() FROM ( +SELECT platform_order_no FROM custom_online_sale_order_local GROUP BY platform_order_no HAVING COUNT(DISTINCT store_code) > 1); + +SELECT + a.perYear AS "年份", + a.province_t AS "省份", + a.goodsAmt AS "销售金额(元)", + a.orderFreightAmt AS "运费金额(元)", + a.goodsAmt + a.orderFreightAmt AS "销售金额(元)(包含运费)", + a.order_amt AS "订单数量", + b.all_order_count AS "订单总数量", + ROUND((a.goodsAmt + a.orderFreightAmt) / b.all_order_count, 2) AS "订单占比" +FROM (SELECT + SUBSTR(order_time_t, 1, 4) AS perYear, + province_t, + SUM(goods_amt_t) AS goodsAmt, + SUM(order_freight_amt_t) AS orderFreightAmt, + COUNT(DISTINCT platform_order_no) AS order_amt + FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(min_order_time) AS order_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t, + MAX(province) AS province_t + FROM custom_online_sale_order_local + WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30' AND province <> '' + GROUP BY store_code, system_order_no, platform_order_no + ) + GROUP BY SUBSTR(order_time_t, 1, 4), province_t +) a LEFT JOIN ( + SELECT + perYear, + SUM(order_amt) AS all_order_count + FROM (SELECT SUBSTR(min_order_time, 1, 4) AS perYear, province, COUNT(DISTINCT platform_order_no) AS order_amt + FROM custom_online_sale_order_local + WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30' AND province <> '' + GROUP BY SUBSTR(min_order_time, 1, 4), province + ) GROUP BY perYear +) b ON a.perYear = b.perYear +ORDER BY a.perYear, a.goodsAmt + a.orderFreightAmt DESC; + +-- 考虑同一订单号多个店铺情况 +--SELECT +-- a.perYear AS "年份", +-- a.province_t AS "省份", +-- a.goodsAmt AS "销售金额(元)", +-- a.orderFreightAmt AS "运费金额(元)", +-- a.goodsAmt + a.orderFreightAmt AS "销售金额(元)(包含运费)", +-- a.order_amt AS "订单数量", +-- b.all_order_count AS "订单总数量", +-- ROUND((a.sale_amount + a.freight_amount) / b.all_order_count, 2) AS "订单占比" +--FROM (SELECT +-- perYear, +-- province_t, +-- SUM(goods_amt_t_t) AS goodsAmt, +-- xxx +-- FROM (SELECT +-- SUBSTR(order_time_t, 1, 4) AS perYear, +-- store_code, +-- province_t, +-- SUM(goods_amt_t) AS goods_amt_t_t, +-- SUM(order_freight_amt_t) AS order_freight_amt_t_t, +-- COUNT(DISTINCT platform_order_no) AS order_amt_t +-- FROM (SELECT +-- store_code, +-- MAX(store_name) AS store_name_t, +-- system_order_no, +-- platform_order_no, +-- MIN(min_order_time) AS order_time_t, +-- MAX(order_freight_amt) AS order_freight_amt_t, +-- SUM(goods_qty) AS goods_qty_t, +-- SUM(goods_amt) AS goods_amt_t, +-- MAX(province) AS province_t +-- FROM custom_online_sale_order_local +-- GROUP BY store_code, system_order_no, platform_order_no +-- ) +-- WHERE SUBSTR(order_time_t, 1, 10) >= '2022-01-01' AND SUBSTR(order_time_t, 1, 10) <= '2025-06-30' +-- GROUP BY SUBSTR(order_time_t, 1, 4), store_code, province_t +-- ) GROUP BY perYear, province_t +--) a + +------------------------------------------------------------------ +-- 2.2线上每年各等级城市销售金额、订单数量及其占比 +-- 城市为空 -> 其他 +-- 省直辖县级行政区 -> 区域替换城市(其他区和空也直接换) +-- 湖北省直辖县 -> 区域替换城市(其它区也直接换) +-- 县 -> 省份替换城市 +-- 自治区直辖县级行政区划 -> 区域替换城市 +-- 省直辖县级行政区划 -> 区域替换城市(其他区和空也直接换) +-- 新疆维吾尔自治区直辖县 -> 区域替换城市 +-- 维吾尔自治区 -> 区域替换城市 +-- 河南省直辖县 -> 区域替换城市 +-- 市辖区 -> 省份替换城市 +-- 广东 -> 区域替换城市 +-- 湖北 -> 区域替换城市 +SELECT city, COUNT() FROM custom_online_sale_order_local GROUP BY city; + +SELECT DISTINCT region FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区'; +SELECT * FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区' AND region = ''; +SELECT * FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区' AND region = '其它区'; + +SELECT DISTINCT region FROM custom_online_sale_order_local WHERE city = '湖北省直辖县'; + +SELECT DISTINCT province FROM custom_online_sale_order_local WHERE city = '县'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '自治区直辖县级行政区划'; + +SELECT DISTINCT region FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区划'; +SELECT * FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区划' AND region = ''; +SELECT * FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区划' AND region = '其它区'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '新疆维吾尔自治区直辖县'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '维吾尔自治区'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '河南省直辖县'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '市辖区'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '广东'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '湖北'; + +-- 1236382条平台订单没有城市 +SELECT source_system, COUNT(DISTINCT platform_order_no) FROM custom_online_sale_order_local WHERE city = '' GROUP BY source_system; +-- 城市和等级关联到的只有5695单 需要手工调整 +SELECT DISTINCT city FROM custom_online_sale_order_local; +-- 只能计算有订单的,账单的不能算(没有城市) +-- 忽略城市为空的平台订单 +SELECT + a.perYear AS "年份", + a.city_grade_t AS "城市等级", + a.goodsAmt AS "销售金额(元)", + a.orderFreightAmt AS "运费金额(元)", + a.goodsAmt + a.orderFreightAmt AS "销售金额(元)(包含运费)", + a.order_amt AS "订单数量", + b.all_order_count AS "订单总数量", + ROUND((a.goodsAmt + a.orderFreightAmt) / b.all_order_count, 2) AS "订单占比" +FROM (SELECT + SUBSTR(order_time_t, 1, 4) AS perYear, + city_grade_t, + SUM(goods_amt_t) AS goodsAmt, + SUM(order_freight_amt_t) AS orderFreightAmt, + COUNT(DISTINCT platform_order_no) AS order_amt + FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(min_order_time) AS order_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t, + MAX(t2.city_grade) AS city_grade_t + FROM custom_online_sale_order_local t1 + LEFT JOIN custom_online_city_grade_local t2 ON t1.city = t2.city + WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30' AND t2.city_grade <> '' + GROUP BY store_code, system_order_no, platform_order_no + ) + GROUP BY SUBSTR(order_time_t, 1, 4), city_grade_t +) a LEFT JOIN ( + SELECT + perYear, + SUM(order_amt) AS all_order_count + FROM (SELECT SUBSTR(min_order_time, 1, 4) AS perYear, t2.city_grade, COUNT(DISTINCT platform_order_no) AS order_amt + FROM custom_online_sale_order_local t1 + LEFT JOIN custom_online_city_grade_local t2 ON t1.city = t2.city + WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30' AND t2.city_grade <> '' + GROUP BY SUBSTR(min_order_time, 1, 4), t2.city_grade + ) GROUP BY perYear +) b ON a.perYear = b.perYear +ORDER BY a.perYear, a.goodsAmt + a.orderFreightAmt DESC; + +------------------------------------------------------------------ +-- 3.1线上每年单笔订单金额分布及其占比 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 3.2线上每年同一个收货地址的地址数量、销售金额、订单数量 +-- 100053条 +SELECT platform_order_no FROM custom_online_sale_order_local GROUP BY platform_order_no HAVING COUNT(DISTINCT consignee_add) > 1; +SELECT * FROM custom_online_sale_order_local WHERE platform_order_no = '4920083542368856013A'; +-- SBZ换货没有标识 | 换货单或者手工单发货地址为明文,与平台是一个地址,但是平台属于密文,只取一个 +-- 1869294条平台订单没有收货地址,账单的都没有 +SELECT + SUBSTR(order_time_t, 1, 4) AS "年份", + consignee_add_t AS "收货地址", + SUM(goods_amt_t) AS "销售金额(元)", + SUM(order_freight_amt_t) AS "运费金额(元)", + SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额(元)(包含运费)", + COUNT(DISTINCT platform_order_no) AS "订单数量" +FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(min_order_time) AS order_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t, + MAX(consignee_add) AS consignee_add_t + FROM custom_online_sale_order_local + WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30' AND consignee_add <> '' + GROUP BY store_code, system_order_no, platform_order_no +) +GROUP BY SUBSTR(order_time_t, 1, 4), consignee_add_t +ORDER BY SUBSTR(order_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC; + +-- 省份+地址 +--SELECT COUNT() FROM custom_online_sale_order_local WHERE consignee_add = ''; -- 1869294 +--SELECT COUNT() FROM custom_online_sale_order_local WHERE province = ''; -- 1869251 +--SELECT COUNT() FROM custom_online_sale_order_local WHERE consignee_add = '' AND province = ''; -- 1869249 +-- +--SELECT +-- SUBSTR(order_time_t, 1, 4) AS "年份", +-- consignee_add_t AS "收货地址", +-- SUM(goods_amt_t) AS "销售金额(元)", +-- SUM(order_freight_amt_t) AS "运费金额(元)", +-- SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额(元)(包含运费)", +-- COUNT(DISTINCT platform_order_no) AS "订单数量" +--FROM (SELECT +-- store_code, +-- MAX(store_name) AS store_name_t, +-- system_order_no, +-- platform_order_no, +-- MIN(min_order_time) AS order_time_t, +-- MAX(order_freight_amt) AS order_freight_amt_t, +-- SUM(goods_qty) AS goods_qty_t, +-- SUM(goods_amt) AS goods_amt_t, +-- CONCAT(MAX(province), MAX(consignee_add)) AS consignee_add_t +-- FROM custom_online_sale_order_local +-- WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30' AND consignee_add <> '' +-- GROUP BY store_code, system_order_no, platform_order_no +--) +--GROUP BY SUBSTR(order_time_t, 1, 4), consignee_add_t +--ORDER BY SUBSTR(order_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC; + +------------------------------------------------------------------ +-- 3.3线上每年各天和各小时订单数量和销售金额 +-- order_time没有时分秒的数量 78954 SBZE3的部分单子 计算各小时的需要去除 +SELECT * FROM custom_online_sale_order_local WHERE LENGTH(order_time) <= 10; +-- 账单order_time没有时分秒的数量 7364085 +SELECT COUNT() FROM custom_online_sale_bill_local WHERE LENGTH(order_time) <= 10; +-- 账单的不能算订单数量 +SELECT + SUBSTR(order_time_t, 1, 4) AS "年份", + SUBSTR(order_time_t, 6, 5) AS "日期", + SUM(goods_amt_t) AS "销售金额(元)", + SUM(order_freight_amt_t) AS "运费金额(元)", + SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额(元)(包含运费)", + COUNT(DISTINCT platform_order_no) AS "订单数量" +FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(min_order_time) AS order_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t + FROM custom_online_sale_order_local + WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30' + GROUP BY store_code, system_order_no, platform_order_no +) +GROUP BY SUBSTR(order_time_t, 1, 4), SUBSTR(order_time_t, 6, 5) +ORDER BY SUBSTR(order_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC; + +-- 账单店铺金额 +SELECT + SUBSTR(order_time, 1, 4) AS "年份", + SUBSTR(order_time, 6, 5) AS "日期", + SUM(goods_amt) AS "销售金额(元)" +FROM custom_online_sale_bill_local +WHERE goods_amt >= 0 AND SUBSTR(order_time, 1, 10) >= '2022-01-01' AND SUBSTR(order_time, 1, 10) <= '2025-06-30' +GROUP BY SUBSTR(order_time, 1, 4), SUBSTR(order_time, 6, 5) +ORDER BY SUBSTR(order_time, 1, 4), SUM(goods_amt) DESC; + + +-- 按照小时算 ---------- +SELECT + SUBSTR(order_time_t, 1, 4) AS "年份", + time_area AS "时间区间", + SUM(goods_amt_t) AS "销售金额(元)", + SUM(order_freight_amt_t) AS "运费金额(元)", + SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额(元)(包含运费)", + COUNT(DISTINCT platform_order_no) AS "订单数量" +FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(min_order_time) AS order_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t, + CASE WHEN LENGTH(order_time_t) > 10 THEN + CASE + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 0 THEN '0-1点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 1 THEN '1-2点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 2 THEN '2-3点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 3 THEN '3-4点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 4 THEN '4-5点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 5 THEN '5-6点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 6 THEN '6-7点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 7 THEN '7-8点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 8 THEN '8-9点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 9 THEN '9-10点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 10 THEN '10-11点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 11 THEN '11-12点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 12 THEN '12-13点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 13 THEN '13-14点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 14 THEN '14-15点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 15 THEN '15-16点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 16 THEN '16-17点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 17 THEN '17-18点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 18 THEN '18-19点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 19 THEN '19-20点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 20 THEN '20-21点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 21 THEN '21-22点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 22 THEN '22-23点' + WHEN toInt32(SUBSTR(order_time_t, 12, 2)) = 23 THEN '23-24点' + END + ELSE '其他' END AS time_area + FROM custom_online_sale_order_local + WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30' + GROUP BY store_code, system_order_no, platform_order_no +) +WHERE time_area <> '其他' +GROUP BY SUBSTR(order_time_t, 1, 4), time_area +ORDER BY SUBSTR(order_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC; + +-- 账单店铺金额 +-- 22 23年没有带时间的 +SELECT + SUBSTR(order_time, 1, 4) AS "年份", + time_area AS "时间区间", + SUM(goods_amt) AS "销售金额(元)" +FROM (SELECT + order_time, + CASE + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 0 THEN '0-1点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 1 THEN '1-2点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 2 THEN '2-3点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 3 THEN '3-4点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 4 THEN '4-5点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 5 THEN '5-6点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 6 THEN '6-7点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 7 THEN '7-8点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 8 THEN '8-9点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 9 THEN '9-10点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 10 THEN '10-11点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 11 THEN '11-12点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 12 THEN '12-13点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 13 THEN '13-14点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 14 THEN '14-15点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 15 THEN '15-16点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 16 THEN '16-17点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 17 THEN '17-18点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 18 THEN '18-19点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 19 THEN '19-20点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 20 THEN '20-21点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 21 THEN '21-22点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 22 THEN '22-23点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 23 THEN '23-24点' + END AS time_area, + goods_amt + FROM custom_online_sale_bill_local + WHERE goods_amt >= 0 AND SUBSTR(order_time, 1, 10) >= '2022-01-01' AND SUBSTR(order_time, 1, 10) <= '2025-06-30' AND LENGTH(order_time) > 10 +) GROUP BY SUBSTR(order_time, 1, 4), time_area +ORDER BY SUBSTR(order_time, 1, 4), SUM(goods_amt) DESC; + +------------------------------------------------------------------ +-- 3.4线上每年大促期间店铺销售金额、订单数量和占比 +SELECT + store_code AS "店铺编码", + MAX(store_name_t) AS "店铺名称", + SUM(goods_amt_t) AS "销售金额(元)", + SUM(order_freight_amt_t) AS "运费金额(元)", + SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额(元)(包含运费)", + COUNT(DISTINCT platform_order_no) AS "订单数量" +FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(min_order_time) AS order_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t + FROM custom_online_sale_order_local + WHERE SUBSTR(min_order_time, 1, 10) >= '2022-06-01' AND SUBSTR(min_order_time, 1, 10) <= '2022-06-30' + GROUP BY store_code, system_order_no, platform_order_no +) +GROUP BY store_code +ORDER BY SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC; + +-- 账单店铺金额 +SELECT + store_code AS "店铺编码", + MAX(store_name) AS "店铺名称", + SUM(goods_amt) AS "销售金额(元)" +FROM custom_online_sale_bill_local +WHERE goods_amt >= 0 AND SUBSTR(order_time, 1, 10) >= '2022-06-01' AND SUBSTR(order_time, 1, 10) <= '2022-06-30' +GROUP BY store_code +ORDER BY SUM(goods_amt) DESC; + +------------------------------------------------------------------ +-- 4.1线上每年订单下单和发货间隔的销售金额、订单数量分布 +-- 1586424条平台订单物流单号为空 +SELECT source_system, COUNT() FROM custom_online_sale_order_local WHERE main_logistic_bill = '' GROUP BY source_system; +-- 1,780,404 条平台订单发货时间为空 +SELECT source_system, COUNT() FROM custom_online_sale_order_local WHERE deliver_time = '' GROUP BY source_system; +-- SBZ XSDD的40条财务手工的单子发货时间不为空,其他都为空 账单的做不了 +SELECT * FROM custom_online_sale_bill_local WHERE deliver_time <> ''; +-- 拆单发货时间不同,会算多单即每个间隔都可能存在同一个订单 +SELECT + SUBSTR(order_time_t, 1, 4) AS "年份", + time_diff AS "发货间隔", + SUM(goods_amt_t) AS "销售金额(元)", + SUM(order_freight_amt_t) AS "运费金额(元)", + SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额(元)(包含运费)", + COUNT(DISTINCT platform_order_no) AS "订单数量" +FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(min_order_time) AS order_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t, + MIN(deliver_time) AS deliver_time_t, + CASE WHEN deliver_time_t <> '' AND order_time_t <> '' THEN + CASE + WHEN dateDiff('minute', toDateTime(deliver_time_t), toDateTime(order_time_t)) <= 240 THEN '0-4小时' + WHEN dateDiff('minute', toDateTime(deliver_time_t), toDateTime(order_time_t)) > 240 + AND dateDiff('minute', toDateTime(deliver_time_t), toDateTime(order_time_t)) <= 1440 THEN '4-24小时' + WHEN dateDiff('minute', toDateTime(deliver_time_t), toDateTime(order_time_t)) > 1440 + AND dateDiff('minute', toDateTime(deliver_time_t), toDateTime(order_time_t)) <= 2880 THEN '24-48小时' + WHEN dateDiff('minute', toDateTime(deliver_time_t), toDateTime(order_time_t)) > 2880 THEN '大于48小时' + END + ELSE '其他' + END AS time_diff + FROM custom_online_sale_order_local + WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30' + GROUP BY store_code, system_order_no, platform_order_no +) +WHERE time_diff <> '其他' +GROUP BY SUBSTR(order_time_t, 1, 4), time_diff +ORDER BY SUBSTR(order_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC; + +------------------------------------------------------------------ +-- 4.2线上每年各物流承运商销售金额、订单数量 +-- 932303条平台订单物流承运商为空 账单的为SBZ 40条财务手工单,无平台订单号不考虑 +SELECT COUNT(DISTINCT platform_order_no) FROM custom_online_sale_order_local WHERE carrier = ''; + +SELECT carrier, COUNT(DISTINCT platform_order_no) FROM custom_online_sale_order_local GROUP BY carrier; + +SELECT + SUBSTR(order_time_t, 1, 4) AS "年份", + carrierName AS "承运商", + SUM(goods_amt_t) AS "销售金额(元)", + SUM(order_freight_amt_t) AS "运费金额(元)", + SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额(元)(包含运费)", + COUNT(DISTINCT platform_order_no) AS "订单数量" +FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(min_order_time) AS order_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t, + MAX(carrier) AS carrier_t, + CASE + WHEN carrier_t IN ('shunfeng') OR carrier_t LIKE 'sf%' OR carrier_t LIKE 'SF%' OR carrier_t LIKE '顺丰%' THEN '顺丰' + WHEN carrier_t IN ('postb', 'eyb') OR carrier_t LIKE 'ems%' OR carrier_t LIKE 'EMS%' THEN '邮政' + WHEN carrier_t LIKE 'yunda%' OR carrier_t LIKE 'YUNDA%' THEN '韵达' + WHEN carrier_t IN ('ZT') OR carrier_t LIKE 'zto%' OR carrier_t LIKE 'ZTO%' OR carrier_t LIKE '中通%' THEN '中通' + WHEN carrier_t LIKE 'jd%' OR carrier_t LIKE 'JD%' OR carrier_t LIKE '京东%' THEN '京东' + WHEN carrier_t IN ('ST#DW', 'ST') OR carrier_t LIKE 'sto%' OR carrier_t LIKE 'STO%' OR carrier_t LIKE '申通%' THEN '申通' + WHEN carrier_t LIKE 'jt%' OR carrier_t LIKE 'JT%' THEN '极兔' + WHEN carrier_t IN ('YT') OR carrier_t LIKE 'yto%' OR carrier_t LIKE 'YTO%' OR carrier_t LIKE '圆通%' THEN '圆通' + WHEN carrier_t IN ('rider') THEN '骑士' + WHEN carrier_t IN ('dbl') THEN '德邦' + WHEN carrier_t IN ('htky') THEN '汇通' + WHEN carrier_t IN ('QSKD') THEN '千顺' + WHEN carrier_t IN ('fengwang') THEN '丰网' + WHEN carrier_t IN ('best') THEN '百世' + WHEN carrier_t IN ('ttkdex') THEN '天天' + ELSE carrier_t + END AS carrierName + FROM custom_online_sale_order_local + WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30' + GROUP BY store_code, system_order_no, platform_order_no +) +GROUP BY SUBSTR(order_time_t, 1, 4), carrierName +ORDER BY SUBSTR(order_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC; + +------------------------------------------------------------------ +-- 4.3线上每年各月物流单数量 +-- 按照最小下单时间,物流单往前归 +SELECT + SUBSTR(min_order_time, 1, 4) AS "年份", + SUBSTR(min_order_time, 6, 2) AS "月份", + COUNT(DISTINCT main_logistic_bill) AS "物流单数量" +FROM custom_online_sale_order_local +WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30' AND main_logistic_bill <> '' +GROUP BY SUBSTR(min_order_time, 1, 4), SUBSTR(min_order_time, 6, 2) +ORDER BY SUBSTR(min_order_time, 1, 4), SUBSTR(min_order_time, 6, 2); + +------------------------------------------------------------------ +-- 5.1线上各店铺每年度退款金额 +-- 账单有没有和退款中重复的????????????? +-- 1200609条平台订单号为空 +SELECT COUNT() FROM custom_online_sale_return_local WHERE platform_order_no = ''; +-- 没有 +SELECT * FROM custom_online_sale_return_local WHERE platform_order_no <> '' AND platform_order_no IN (SELECT platform_order_no FROM custom_online_sale_bill_local); +-- 593条 DYE2 SF00891-19条 +SELECT * FROM custom_online_sale_return_local WHERE store_code IN (SELECT store_code FROM custom_online_sale_bill_local); +-- 换货的退款不区分 退款订单数量识别不出来,合并发货的平台单A,B,C只退B,退款平台单号也是A,B,C +SELECT + SUBSTR(create_time_t, 1, 4) AS "年份", + store_code AS "店铺编码", + MAX(store_name_t) AS "店铺名称", + SUM(return_goods_amt_t) AS "退款金额(元)", + SUM(return_freight_amt_t) AS "退款运费金额(元)", + SUM(return_goods_amt_t) + SUM(return_freight_amt_t) AS "退款金额(元)(包含退款运费)" +FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(create_time) AS create_time_t, + MAX(return_freight_amt) AS return_freight_amt_t, + SUM(return_goods_qty) AS return_goods_qty_t, + SUM(return_goods_amt) AS return_goods_amt_t + FROM custom_online_sale_return_local + WHERE SUBSTR(create_time, 1, 10) >= '2022-01-01' AND SUBSTR(create_time, 1, 10) <= '2025-06-30' + GROUP BY store_code, system_order_no, platform_order_no +) +GROUP BY SUBSTR(create_time_t, 1, 4), store_code +ORDER BY SUBSTR(create_time_t, 1, 4), SUM(return_goods_amt_t) + SUM(return_freight_amt_t); + +--SELECT SUM(return_goods_amt) FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE SUBSTR(create_time, 1, 4) = '2024' AND store_code = 'K1817'; + +-- 账单店铺金额 +SELECT + SUBSTR(order_time, 1, 4) AS "年份", + store_code AS "店铺编码", + MAX(store_name) AS "店铺名称", + SUM(goods_amt) AS "退款金额(元)" +FROM custom_online_sale_bill_local +WHERE goods_amt < 0 AND SUBSTR(order_time, 1, 10) >= '2022-01-01' AND SUBSTR(order_time, 1, 10) <= '2025-06-30' +GROUP BY SUBSTR(order_time, 1, 4), store_code +ORDER BY SUBSTR(order_time, 1, 4), SUM(goods_amt); + +------------------------------------------------------------------ +-- 5.2线上各店铺每年退款订单数量 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 5.3线上每年退款大于原销售的差异金额、订单数量 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 5.4线上每年各月退款金额 +SELECT + SUBSTR(create_time_t, 1, 4) AS "年份", + SUBSTR(create_time_t, 6, 2) AS "月份", + SUM(return_goods_amt_t) AS "退款金额(元)", + SUM(return_freight_amt_t) AS "退款运费金额(元)", + SUM(return_goods_amt_t) + SUM(return_freight_amt_t) AS "退款金额(元)(包含退款运费)" +FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(create_time) AS create_time_t, + MAX(return_freight_amt) AS return_freight_amt_t, + SUM(return_goods_qty) AS return_goods_qty_t, + SUM(return_goods_amt) AS return_goods_amt_t + FROM custom_online_sale_return_local + WHERE SUBSTR(create_time, 1, 10) >= '2022-01-01' AND SUBSTR(create_time, 1, 10) <= '2025-06-30' + GROUP BY store_code, system_order_no, platform_order_no +) +GROUP BY SUBSTR(create_time_t, 1, 4), SUBSTR(create_time_t, 6, 2) +ORDER BY SUBSTR(create_time_t, 1, 4), SUBSTR(create_time_t, 6, 2); + +--SELECT SUM(return_goods_amt) FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE SUBSTR(create_time, 1, 4) = '2024' AND store_code = 'K1817'; + +-- 账单店铺金额 +SELECT + SUBSTR(order_time, 1, 4) AS "年份", + SUBSTR(order_time, 6, 2) AS "月份", + SUM(goods_amt) AS "退款金额(元)" +FROM custom_online_sale_bill_local +WHERE goods_amt < 0 AND SUBSTR(order_time, 1, 10) >= '2022-01-01' AND SUBSTR(order_time, 1, 10) <= '2025-06-30' +GROUP BY SUBSTR(order_time, 1, 4), SUBSTR(order_time, 6, 2) +ORDER BY SUBSTR(order_time, 1, 4), SUBSTR(order_time, 6, 2); + +------------------------------------------------------------------ +-- 5.5线上每年各月退款订单数量 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 5.6线上每年订单退款金额分布 + +-- xxxxxxxxxxxxxxxxx 识别不出准确订单数量 + +------------------------------------------------------------------ +-- 6.1线上每年净销售金额前100订单净销售金额 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 6.2线上每年净销售金额前100订单各省份净销售金额 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 6.3线上每年净销售金额前100订单各商品净销售金额 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 7.1线上每年会员数量 +-- 19年有会员系统,所以很多没有注册门店 +SELECT brand, COUNT() FROM dwd_basic_all_vip_info_dd WHERE member_register_shop = '' GROUP BY brand ; +SELECT SUBSTR(member_register_time, 1, 4), COUNT() FROM dwd_basic_all_vip_info_dd WHERE member_register_shop = '' AND brand = 'BES' GROUP BY SUBSTR(member_register_time, 1, 4); + +-- 账单没有 +SELECT * FROM custom_online_sale_bill_local WHERE store_code IN (SELECT member_register_shop FROM dwd_basic_all_vip_info_dd); +-- 3345273 +SELECT * FROM custom_online_sale_order_local WHERE store_code IN (SELECT member_register_shop FROM dwd_basic_all_vip_info_dd); +-- 30条会员数据没有注册时间 +SELECT COUNT(DISTINCT t2.member_id) +FROM (SELECT DISTINCT store_code FROM custom_online_sale_order_local WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30') t1 +INNER JOIN dwd_basic_all_vip_info_dd t2 ON t1.store_code = t2.member_register_shop +WHERE t2.member_register_time = ''; + +-- 每年底数量 +SELECT + COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 4) < '2023' THEN t2.member_id END) AS count_2022, + COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 4) < '2024' THEN t2.member_id END) AS count_2023, + COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 4) < '2025' THEN t2.member_id END) AS count_2024, + COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 10) <= '2025-06-30' THEN t2.member_id END) AS count_20250630 +FROM (SELECT DISTINCT store_code FROM custom_online_sale_order_local WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30') t1 +INNER JOIN dwd_basic_all_vip_info_dd t2 ON t1.store_code = t2.member_register_shop +WHERE t2.member_register_time <> ''; + +------------------------------------------------------------------ +-- 7.2线上每年活跃会员数量及其占比 +-- 1363725条积分变动数据变动时间为空 +SELECT COUNT() FROM dwd_basic_all_vip_point_dd WHERE change_time = ''; +-- +--SELECT t2.* +--FROM (SELECT DISTINCT store_code FROM custom_online_sale_order_local WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30') t1 +--INNER JOIN dwd_basic_all_vip_info_dd t2 ON t1.store_code = t2.member_register_shop +--WHERE SUBSTR(t2.member_register_time, 1, 10) <= '2025-06-30'; + +-- 订单号关联不到积分数据 +SELECT * FROM custom_online_sale_order_local WHERE platform_order_no IN (SELECT bill_no FROM dwd_basic_all_vip_point_dd WHERE bill_no <> ''); +SELECT * FROM custom_online_sale_order_local WHERE system_order_no IN (SELECT bill_no FROM dwd_basic_all_vip_point_dd WHERE bill_no <> ''); + +SELECT * FROM custom_online_sale_order_local t1 INNER JOIN dwd_basic_all_vip_point_dd t2 ON t1.system_order_no = t2.bill_no; +SELECT * FROM custom_online_sale_order_local t1 INNER JOIN dwd_basic_all_vip_point_dd t2 ON t1.platform_order_no = t2.bill_no; + + +SELECT + a.perYear "年份", + a.member_count AS "活跃会员数量", + ROUND(a.member_count / + CASE + WHEN a.perYear = '2022' THEN b.count_2022 + WHEN a.perYear = '2023' THEN b.count_2023 + WHEN a.perYear = '2024' THEN b.count_2024 + WHEN a.perYear = '2025' THEN b.count_20250630 + END + , 4) AS "活跃会员占比" +FROM (SELECT SUBSTR(change_time, 1, 4) AS perYear, COUNT(DISTINCT member_id) AS member_count +FROM dwd_basic_all_vip_point_dd +WHERE member_id IN (SELECT DISTINCT member_id + FROM (SELECT DISTINCT store_code FROM custom_online_sale_order_local WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30') t1 + INNER JOIN dwd_basic_all_vip_info_dd t2 ON t1.store_code = t2.member_register_shop + WHERE t2.member_register_time <> '') +AND point_change > '0' AND change_time <> '' AND SUBSTR(change_time, 1, 10) >= '2022-01-01' AND SUBSTR(change_time, 1, 10) <= '2025-06-30' +GROUP BY SUBSTR(change_time, 1, 4) +) a, ( + SELECT + COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 4) < '2023' THEN t2.member_id END) AS count_2022, + COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 4) < '2024' THEN t2.member_id END) AS count_2023, + COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 4) < '2025' THEN t2.member_id END) AS count_2024, + COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 10) <= '2025-06-30' THEN t2.member_id END) AS count_20250630 + FROM (SELECT DISTINCT store_code FROM custom_online_sale_order_local WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30') t1 + INNER JOIN dwd_basic_all_vip_info_dd t2 ON t1.store_code = t2.member_register_shop + WHERE t2.member_register_time <> '' +) b +ORDER BY a.perYear; + +------------------------------------------------------------------ +-- 7.3线上每年会员新增、注销数量 + + +-- 每年新增 +SELECT SUBSTR(t2.member_register_time, 1, 4), COUNT(DISTINCT t2.member_id) +FROM (SELECT DISTINCT store_code FROM custom_online_sale_order_local WHERE SUBSTR(min_order_time, 1, 10) >= '2022-01-01' AND SUBSTR(min_order_time, 1, 10) <= '2025-06-30') t1 +INNER JOIN dwd_basic_all_vip_info_dd t2 ON t1.store_code = t2.member_register_shop +WHERE t2.member_register_time <> '' AND SUBSTR(t2.member_register_time, 1, 10) <= '2025-06-30' +GROUP BY SUBSTR(t2.member_register_time, 1, 4) +ORDER BY SUBSTR(t2.member_register_time, 1, 4); + +-- 注销没数据 + +------------------------------------------------------------------ +-- 7.4线上每年会员积分新增、消耗、清零数量 +-- 积分类型 +SELECT DISTINCT change_kind FROM dwd_basic_all_vip_point_dd; + +------------------------------------------------------------------ \ No newline at end of file diff --git a/数据分析/v3/正式-查询-下单时间-old(不算换货).sql b/数据分析/v3/正式-查询-下单时间-old(不算换货).sql new file mode 100644 index 0000000..6a2606a --- /dev/null +++ b/数据分析/v3/正式-查询-下单时间-old(不算换货).sql @@ -0,0 +1,869 @@ +-- 1.1线上各店铺每年度销售金额、订单数量、订单均价 +-- 数量和单价只能计算有订单的,账单的不能算 +SELECT + SUBSTR(t1.order_time, 1, 4) AS "年份", + t1.store_code AS "店铺编码", + MAX(t1.store_name) AS "店铺名称", + SUM(t1.order_amt) + SUM(t2.order_freight_amt) AS "销售金额(元)(包含运费)", + SUM(t2.order_freight_amt) AS "运费金额(元)", + COUNT(t1.platform_order_no) AS "订单数量", + ROUND((SUM(t1.order_amt) + SUM(t2.order_freight_amt)) / COUNT(t1.platform_order_no), 2) AS "订单均价(元)" +FROM (SELECT store_code, platform_order_no, MAX(store_name) AS store_name, MIN(order_time) AS order_time, SUM(goods_amt) AS order_amt + FROM custom_online_sale_order_local + GROUP BY store_code, platform_order_no +) t1 LEFT JOIN ( + -- EC算运费 + SELECT store_code, platform_order_no, SUM(order_freight_amt_t) AS order_freight_amt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MAX(order_freight_amt) AS order_freight_amt_t + FROM custom_online_sale_order_local + WHERE source_system IN ('EC_HIS_NEW', 'EC_HIS2') AND order_freight_amt <> 0 + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no +) t2 ON t1.store_code = t2.store_code AND t1.platform_order_no = t2.platform_order_no +WHERE t1.order_time >= '2022-01-01' AND t1.order_time <= '2025-06-30' +GROUP BY SUBSTR(t1.order_time, 1, 4), t1.store_code +ORDER BY SUBSTR(t1.order_time, 1, 4), (SUM(t1.order_amt) + SUM(t2.order_freight_amt)) DESC; + +-- 账单店铺金额 +SELECT + SUBSTR(order_time, 1, 4) AS "年份", + store_code AS "店铺编码", + MAX(store_name) AS "店铺名称", + SUM(goods_amt) AS "销售金额(元)" +FROM custom_online_sale_bill_local +WHERE goods_amt >= 0 +GROUP BY SUBSTR(order_time, 1, 4), store_code +ORDER BY SUBSTR(order_time, 1, 4), SUM(goods_amt) DESC; + +------------------------------------------------------------------ +-- 1.2线上各店铺每年度净销售金额 +SELECT + SUBSTR(t1.order_time, 1, 4) AS "年份", + t1.store_code AS "店铺编码", + MAX(t1.store_name) AS "店铺名称", + SUM(t1.order_amt) AS "销售金额(元)", + SUM(t2.order_freight_amt) AS "运费金额(元)", + SUM(t3.order_return_goods_amt) AS "退货金额(元)", + SUM(t4.order_return_freight_amt) AS "退货运费金额(元)", + SUM(t5.order_change_amount) AS "发货调整金额(元)", + SUM(t1.order_amt) + SUM(t2.order_freight_amt) + SUM(t3.order_return_goods_amt) + + SUM(t4.order_return_freight_amt) + SUM(t5.order_change_amount) AS "净销售金额(元)" +FROM (SELECT store_code, platform_order_no, MAX(store_name) AS store_name, MIN(order_time) AS order_time, SUM(goods_amt) AS order_amt + FROM custom_online_sale_order_local + GROUP BY store_code, platform_order_no +) t1 LEFT JOIN ( + -- EC算运费 + SELECT store_code, platform_order_no, SUM(order_freight_amt_t) AS order_freight_amt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MAX(order_freight_amt) AS order_freight_amt_t + FROM custom_online_sale_order_local + WHERE source_system IN ('EC_HIS_NEW', 'EC_HIS2') AND order_freight_amt <> 0 + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no +) t2 ON t1.store_code = t2.store_code AND t1.platform_order_no = t2.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(return_goods_amt) AS order_return_goods_amt + FROM custom_online_sale_return_local + GROUP BY store_code, platform_order_no +) t3 ON t1.store_code = t3.store_code AND t1.platform_order_no = t3.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(return_freight_amt_t) AS order_return_freight_amt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MAX(return_freight_amt) AS return_freight_amt_t + FROM custom_online_sale_return_local + WHERE source_system IN ('EC_HIS_NEW', 'EC_HIS2') AND return_freight_amt <> 0 + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no +) t4 ON t1.store_code = t4.store_code AND t1.platform_order_no = t4.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(special_barcode_amt) AS order_change_amount + FROM custom_online_sale_change_local + GROUP BY store_code, platform_order_no +) t5 ON t1.store_code = t5.store_code AND t1.platform_order_no = t5.platform_order_no +WHERE t1.order_time >= '2022-01-01' AND t1.order_time <= '2025-06-30' +GROUP BY SUBSTR(t1.order_time, 1, 4), t1.store_code +ORDER BY SUBSTR(t1.order_time, 1, 4), (SUM(t1.order_amt) + SUM(t2.order_freight_amt) + SUM(t3.order_return_goods_amt) + + SUM(t4.order_return_freight_amt) + SUM(t5.order_change_amount)) DESC; + +-- 账单店铺金额 +SELECT + t1.perYear AS "年份", + t1.store_code AS "店铺编码", + t1.store_name AS "店铺名称", + t1.sale_amount AS "销售金额(元)", + t2.return_amount AS "退货金额(元)", + t1.sale_amount + t2.return_amount AS "净销售金额(元)" +FROM (SELECT + SUBSTR(order_time, 1, 4) AS perYear, + store_code, + MAX(store_name) AS store_name, + SUM(goods_amt) AS sale_amount + FROM custom_online_sale_bill_local + WHERE goods_amt >= 0 + GROUP BY SUBSTR(order_time, 1, 4), store_code +) t1 LEFT JOIN ( + SELECT + SUBSTR(order_time, 1, 4) AS perYear, + store_code, + SUM(goods_amt) AS return_amount + FROM custom_online_sale_bill_local + WHERE goods_amt < 0 + GROUP BY SUBSTR(order_time, 1, 4), store_code +) t2 ON t1.perYear = t2.perYear AND t1.store_code = t2.store_code +ORDER BY t1.perYear, (t1.sale_amount + t2.return_amount) DESC; + +------------------------------------------------------------------ +-- 1.3线上各店铺每年月度销售金额 +SELECT + SUBSTR(t1.order_time, 1, 4) AS "年份", + SUBSTR(t1.order_time, 6, 2) AS "月份", + t1.store_code AS "店铺编码", + MAX(t1.store_name) AS "店铺名称", + SUM(t1.order_amt) + SUM(t2.order_freight_amt) AS "销售金额(元)(包含运费)", + SUM(t2.order_freight_amt) AS "运费金额(元)", + COUNT(t1.platform_order_no) AS "订单数量", + ROUND((SUM(t1.order_amt) + SUM(t2.order_freight_amt)) / COUNT(t1.platform_order_no), 2) AS "订单均价(元)" +FROM (SELECT store_code, platform_order_no, MAX(store_name) AS store_name, MIN(order_time) AS order_time, SUM(goods_amt) AS order_amt + FROM custom_online_sale_order_local + GROUP BY store_code, platform_order_no +) t1 LEFT JOIN ( + -- EC算运费 + SELECT store_code, platform_order_no, SUM(order_freight_amt_t) AS order_freight_amt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MAX(order_freight_amt) AS order_freight_amt_t + FROM custom_online_sale_order_local + WHERE source_system IN ('EC_HIS_NEW', 'EC_HIS2') AND order_freight_amt <> 0 + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no +) t2 ON t1.store_code = t2.store_code AND t1.platform_order_no = t2.platform_order_no +WHERE t1.order_time >= '2022-01-01' AND t1.order_time <= '2025-06-30' +GROUP BY SUBSTR(t1.order_time, 1, 4), SUBSTR(t1.order_time, 6, 2), t1.store_code +ORDER BY SUBSTR(t1.order_time, 1, 4), t1.store_code, SUBSTR(t1.order_time, 6, 2); + +-- 账单店铺金额 +SELECT + SUBSTR(order_time, 1, 4) AS "年份", + SUBSTR(order_time, 6, 2) AS "月份", + store_code AS "店铺编码", + MAX(store_name) AS "店铺名称", + SUM(goods_amt) AS "销售金额(元)" +FROM custom_online_sale_bill_local +WHERE goods_amt >= 0 +GROUP BY SUBSTR(order_time, 1, 4), SUBSTR(order_time, 6, 2), store_code +ORDER BY SUBSTR(order_time, 1, 4), store_code, SUBSTR(order_time, 6, 2); + +------------------------------------------------------------------ +-- 1.4线上每年前五店铺金额分布 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 1.5线上每年各产品数量、产品销售金额 +SELECT * + FROM custom_online_sale_order_local; + +SELECT * FROM dim_hkaudit_goods_mt WHERE barcode IN ( +SELECT barcode +FROM dim_hkaudit_goods_mt GROUP BY barcode HAVING COUNT(DISTINCT goods_code) > 1) +ORDER By barcode ; + +SELECT * FROM dim_hkaudit_goods_mt dhgm WHERE barcode = 'VRDBJ41159A01001A11'; +SELECT * FROM dim_hkaudit_goods_mt WHERE goods_code IN (SELECT goods_barcode FROM custom_online_sale_order_local); + + +SELECT * FROM dim_hkaudit_goods_mt a left join custom_online_sale_order_local b on a.barcode = b.goods_barcode ; + +SELECT COUNT() FROM dim_hkaudit_goods_mt; +SELECT COUNT() FROM dim_hkaudit_goods_mt_local; + +-- 不关联商品名称(每个表单独算) +SELECT + SUBSTR(order_time, 1, 4) AS "年份", + goods_barcode AS "商品条码", + SUM(goods_qty) AS "商品数量", + SUM(goods_amt) AS "商品销售金额(元)" +FROM custom_online_sale_order_local +WHERE order_time >= '2022-01-01' AND order_time <= '2025-06-30' +GROUP BY SUBSTR(order_time, 1, 4), goods_barcode +ORDER BY SUBSTR(order_time, 1, 4), SUM(goods_amt) DESC; + +-- 账单店铺金额 +SELECT + SUBSTR(order_time, 1, 4) AS "年份", + goods_barcode AS "商品条码", + SUM(goods_qty) AS "商品数量", + SUM(goods_amt) AS "商品销售金额(元)" +FROM custom_online_sale_bill_local +WHERE goods_amt >= 0 +GROUP BY SUBSTR(order_time, 1, 4), goods_barcode +ORDER BY SUBSTR(order_time, 1, 4), SUM(goods_amt) DESC; + +---------------------- +-- 集群同步有问题 +--SELECT +-- SUBSTR(t1.order_time, 1, 4) AS "年份", +-- t1.goods_barcode AS "商品条码", +-- MAX(t2.goods_names) AS "商品名称(多个合并)", +-- SUM(t1.goods_qty) AS "商品数量", +-- SUM(t1.goods_amt) AS "商品销售金额(元)" +--FROM custom_online_sale_order_local t1 +--LEFT JOIN (SELECT barcode, arrayStringConcat(groupArray(goods_desc), ',') AS goods_names FROM dim_hkaudit_goods_mt GROUP BY barcode +--) t2 ON t1.goods_barcode = t2.barcode +--WHERE t1.order_time >= '2022-01-01' AND t1.order_time <= '2025-06-30' +--GROUP BY SUBSTR(t1.order_time, 1, 4), t1.goods_barcode +--ORDER BY SUBSTR(t1.order_time, 1, 4), SUM(t1.goods_amt) DESC; + +---------------------- +-- 不关联商品名称(两表合并算) +SELECT + perYear AS "年份", + goods_barcode AS "商品条码", + SUM(goods_qty) AS "商品数量", + SUM(goods_amt) AS "商品销售金额(元)" +FROM (SELECT + SUBSTR(order_time, 1, 4) AS perYear, + goods_barcode, + goods_qty, + goods_amt + FROM custom_online_sale_order_local + WHERE order_time >= '2022-01-01' AND order_time <= '2025-06-30' + UNION ALL + SELECT + SUBSTR(order_time, 1, 4) AS perYear, + goods_barcode, + goods_qty, + goods_amt + FROM custom_online_sale_bill_local + WHERE goods_amt >= 0 +) +GROUP BY perYear, goods_barcode +ORDER BY perYear, SUM(goods_amt) DESC; + +-- 集群同步有问题 +--SELECT +-- t1.perYear AS "年份", +-- t1.goods_barcode AS "商品条码", +-- MAX(t2.goods_names) AS "商品名称(多个合并)", +-- SUM(t1.goods_qty) AS "商品数量", +-- SUM(t1.goods_amt) AS "商品销售金额(元)" +--FROM (SELECT +-- SUBSTR(order_time, 1, 4) AS perYear, +-- goods_barcode, +-- goods_qty, +-- goods_amt +-- FROM custom_online_sale_order_local +-- WHERE order_time >= '2022-01-01' AND order_time <= '2025-06-30' +-- UNION ALL +-- SELECT +-- SUBSTR(order_time, 1, 4) AS perYear, +-- goods_barcode, +-- goods_qty, +-- goods_amt +-- FROM custom_online_sale_bill_local +-- WHERE goods_amt >= 0 +--) t1 LEFT JOIN ( +-- SELECT barcode, arrayStringConcat(groupArray(goods_desc), ',') AS goods_names FROM dim_hkaudit_goods_mt GROUP BY barcode +--) t2 ON t1.goods_barcode = t2.barcode +--GROUP BY t1.perYear, t1.goods_barcode +--ORDER BY t1.perYear, SUM(t1.goods_amt) DESC; + +------------------------------------------------------------------ +-- 2.1线上每年各省份销售金额、订单数量及其占比 +-- 1234791条平台订单没有省份 +SELECT source_system, COUNT(DISTINCT platform_order_no) FROM custom_online_sale_order_local WHERE province = '' GROUP BY source_system; +-- 只能计算有订单的,账单的不能算(没有省份) +-- 考虑店铺单号重复问题 非换货单有946单重复,加上换货单有1229条重复 +-- 忽略省份为空的平台订单 +SELECT + a.perYear AS "年份", + a.province_t AS "省份", + a.sale_amount + a.freight_amount AS "销售金额(元)(包含运费)", + a.freight_amount AS "运费金额(元)", + a.order_count AS "订单数量", -- 不去重,多个店铺算多单 + b.all_order_count AS "订单总数量", + ROUND((a.sale_amount + a.freight_amount) / b.all_order_count, 2) AS "订单占比" +FROM (SELECT + SUBSTR(t1.order_time, 1, 4) AS perYear, + t1.province_t, + SUM(t1.order_amt) AS sale_amount, + SUM(t2.order_freight_amt) AS freight_amount, + COUNT(t1.platform_order_no) AS order_count -- 不去重,多个店铺算多单 + FROM + (SELECT store_code, platform_order_no, MIN(order_time) AS order_time, SUM(goods_amt) AS order_amt, MAX(province) AS province_t + FROM custom_online_sale_order_local + GROUP BY store_code, platform_order_no + ) t1 LEFT JOIN ( + -- EC算运费 + SELECT store_code, platform_order_no, SUM(order_freight_amt_t) AS order_freight_amt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MAX(order_freight_amt) AS order_freight_amt_t + FROM custom_online_sale_order_local + WHERE source_system IN ('EC_HIS_NEW', 'EC_HIS2') AND order_freight_amt <> 0 + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no + ) t2 ON t1.store_code = t2.store_code AND t1.platform_order_no = t2.platform_order_no + WHERE t1.order_time >= '2022-01-01' AND t1.order_time <= '2025-06-30' AND province_t <> '' + GROUP BY SUBSTR(t1.order_time, 1, 4), t1.province_t +) a LEFT JOIN (SELECT SUBSTR(order_time, 1, 4) AS perYear, COUNT(platform_order_no) AS all_order_count + FROM (SELECT store_code, platform_order_no, MIN(order_time) AS order_time, MAX(province) AS province_t + FROM custom_online_sale_order_local + GROUP BY store_code, platform_order_no) + WHERE order_time >= '2022-01-01' AND order_time <= '2025-06-30' AND province_t <> '' + GROUP BY SUBSTR(order_time, 1, 4) +) b ON a.perYear = b.perYear +ORDER BY a.perYear, (a.sale_amount + a.freight_amount) DESC; + +------------------------------------------------------------------ +-- 2.2线上每年各等级城市销售金额、订单数量及其占比 +-- 城市为空 -> 其他 +-- 省直辖县级行政区 -> 区域替换城市(其他区和空也直接换) +-- 湖北省直辖县 -> 区域替换城市(其它区也直接换) +-- 县 -> 省份替换城市 +-- 自治区直辖县级行政区划 -> 区域替换城市 +-- 省直辖县级行政区划 -> 区域替换城市(其他区和空也直接换) +-- 新疆维吾尔自治区直辖县 -> 区域替换城市 +-- 维吾尔自治区 -> 区域替换城市 +-- 河南省直辖县 -> 区域替换城市 +-- 市辖区 -> 省份替换城市 +-- 广东 -> 区域替换城市 +-- 湖北 -> 区域替换城市 +SELECT city, COUNT() FROM custom_online_sale_order_local GROUP BY city; + +SELECT DISTINCT region FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区'; +SELECT * FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区' AND region = ''; +SELECT * FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区' AND region = '其它区'; + +SELECT DISTINCT region FROM custom_online_sale_order_local WHERE city = '湖北省直辖县'; + +SELECT DISTINCT province FROM custom_online_sale_order_local WHERE city = '县'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '自治区直辖县级行政区划'; + +SELECT DISTINCT region FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区划'; +SELECT * FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区划' AND region = ''; +SELECT * FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区划' AND region = '其它区'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '新疆维吾尔自治区直辖县'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '维吾尔自治区'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '河南省直辖县'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '市辖区'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '广东'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '湖北'; + +-- 1236382条平台订单没有城市 +SELECT source_system, COUNT(DISTINCT platform_order_no) FROM custom_online_sale_order_local WHERE city = '' GROUP BY source_system; +-- 城市和等级关联到的只有5695单 需要手工调整 +SELECT DISTINCT city FROM custom_online_sale_order_local; +-- 只能计算有订单的,账单的不能算(没有城市) +-- 忽略城市为空的平台订单 +SELECT + a.perYear AS "年份", + a.city_grade, + a.sale_amount + a.freight_amount AS "销售金额(元)(包含运费)", + a.freight_amount AS "运费金额(元)", + a.order_count AS "订单数量", -- 不去重,多个店铺算多单 + b.all_order_count AS "订单总数量", + ROUND((a.sale_amount + a.freight_amount) / b.all_order_count, 2) AS "订单占比" +FROM (SELECT + SUBSTR(t1.order_time, 1, 4) AS perYear, + t3.city_grade AS city_grade, + SUM(t1.order_amt) AS sale_amount, + SUM(t2.order_freight_amt) AS freight_amount, + COUNT(t1.platform_order_no) AS order_count -- 不去重,多个店铺算多单 + FROM (SELECT store_code, platform_order_no, MIN(order_time) AS order_time, SUM(goods_amt) AS order_amt, MAX(TRIM(city)) AS city_t + FROM custom_online_sale_order_local + GROUP BY store_code, platform_order_no + ) t1 LEFT JOIN ( + -- EC算运费 + SELECT store_code, platform_order_no, SUM(order_freight_amt_t) AS order_freight_amt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MAX(order_freight_amt) AS order_freight_amt_t + FROM custom_online_sale_order_local + WHERE source_system IN ('EC_HIS_NEW', 'EC_HIS2') AND order_freight_amt <> 0 + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no + ) t2 ON t1.store_code = t2.store_code AND t1.platform_order_no = t2.platform_order_no + LEFT JOIN custom_online_city_grade_local t3 ON t1.city_t = t3.city + WHERE t1.order_time >= '2022-01-01' AND t1.order_time <= '2025-06-30' AND t3.city_grade <> '' + GROUP BY SUBSTR(t1.order_time, 1, 4), t3.city_grade +) a LEFT JOIN (SELECT SUBSTR(t1.order_time, 1, 4) AS perYear, COUNT(t1.platform_order_no) AS all_order_count + FROM (SELECT store_code, platform_order_no, MIN(order_time) AS order_time, MAX(TRIM(city)) AS city_t + FROM custom_online_sale_order_local + GROUP BY store_code, platform_order_no) t1 + LEFT JOIN custom_online_city_grade_local t2 ON t1.city_t = t2.city + WHERE t1.order_time >= '2022-01-01' AND t1.order_time <= '2025-06-30' AND t2.city_grade <> '' + GROUP BY SUBSTR(t1.order_time, 1, 4) +) b ON a.perYear = b.perYear +ORDER BY a.perYear, (a.sale_amount + a.freight_amount) DESC; + +------------------------------------------------------------------ +-- 3.1线上每年单笔订单金额分布及其占比 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 3.2线上每年同一个收货地址的地址数量、销售金额、订单数量 +-- 100053条 +SELECT platform_order_no FROM custom_online_sale_order_local GROUP BY platform_order_no HAVING COUNT(DISTINCT consignee_add) > 1; +SELECT * FROM custom_online_sale_order_local WHERE platform_order_no = '4920083542368856013A'; +-- SBZ换货没有标识 | 换货单或者手工单发货地址为明文,与平台是一个地址,但是平台属于密文,只取一个 +-- 1869294条平台订单没有收货地址,账单的都没有 +SELECT + SUBSTR(t1.order_time, 1, 4) AS "年份", + t1.order_addr AS "收货地址", + SUM(t1.order_amt) + SUM(t2.order_freight_amt) AS "销售金额(元)(包含运费)", + SUM(t2.order_freight_amt) AS "运费金额(元)", + COUNT(t1.platform_order_no) AS "订单数量" +FROM (SELECT store_code, platform_order_no, MIN(order_time) AS order_time, SUM(goods_amt) AS order_amt, MAX(consignee_add) AS order_addr + FROM custom_online_sale_order_local + GROUP BY store_code, platform_order_no +) t1 LEFT JOIN ( + -- EC算运费 + SELECT store_code, platform_order_no, SUM(order_freight_amt_t) AS order_freight_amt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MAX(order_freight_amt) AS order_freight_amt_t + FROM custom_online_sale_order_local + WHERE source_system IN ('EC_HIS_NEW', 'EC_HIS2') AND order_freight_amt <> 0 + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no +) t2 ON t1.store_code = t2.store_code AND t1.platform_order_no = t2.platform_order_no +WHERE t1.order_time >= '2022-01-01' AND t1.order_time <= '2025-06-30' AND order_addr <> '' +GROUP BY SUBSTR(t1.order_time, 1, 4), t1.order_addr +ORDER BY SUBSTR(t1.order_time, 1, 4), (SUM(t1.order_amt) + SUM(t2.order_freight_amt)) DESC; + +-- 省份+地址 +--SELECT COUNT() FROM custom_online_sale_order_local WHERE consignee_add = ''; -- 1869294 +--SELECT COUNT() FROM custom_online_sale_order_local WHERE province = ''; -- 1869251 +--SELECT COUNT() FROM custom_online_sale_order_local WHERE consignee_add = '' AND province = ''; -- 1869249 +-- +--SELECT +-- SUBSTR(t1.order_time, 1, 4) AS "年份", +-- t1.order_addr AS "收货地址", +-- SUM(t1.order_amt) + SUM(t2.order_freight_amt) AS "销售金额(元)(包含运费)", +-- SUM(t2.order_freight_amt) AS "运费金额(元)", +-- COUNT(t1.platform_order_no) AS "订单数量" +--FROM (SELECT store_code, platform_order_no, MIN(order_time) AS order_time, SUM(goods_amt) AS order_amt, MAX(CONCAT(province, consignee_add)) AS order_addr +-- FROM custom_online_sale_order_local +-- GROUP BY store_code, platform_order_no +--) t1 LEFT JOIN ( +-- -- EC算运费 +-- SELECT store_code, platform_order_no, SUM(order_freight_amt_t) AS order_freight_amt +-- FROM (SELECT +-- store_code, +-- system_order_no, +-- platform_order_no, +-- MAX(order_freight_amt) AS order_freight_amt_t +-- FROM custom_online_sale_order_local +-- WHERE source_system IN ('EC_HIS_NEW', 'EC_HIS2') AND order_freight_amt <> 0 +-- GROUP BY store_code, system_order_no, platform_order_no +-- ) GROUP BY store_code, platform_order_no +--) t2 ON t1.store_code = t2.store_code AND t1.platform_order_no = t2.platform_order_no +--WHERE t1.order_time >= '2022-01-01' AND t1.order_time <= '2025-06-30' AND order_addr <> '' +--GROUP BY SUBSTR(t1.order_time, 1, 4), t1.order_addr +--ORDER BY SUBSTR(t1.order_time, 1, 4), (SUM(t1.order_amt) + SUM(t2.order_freight_amt)) DESC; + +------------------------------------------------------------------ +-- 3.3线上每年各天和各小时订单数量和销售金额 +-- order_time没有时分秒的数量 78954 SBZE3的部分单子 计算各小时的需要去除 +SELECT * FROM custom_online_sale_order_local WHERE LENGTH(order_time) <= 10; +-- 账单order_time没有时分秒的数量 7364085 +SELECT COUNT() FROM custom_online_sale_bill_local WHERE LENGTH(order_time) <= 10; +-- 账单的不能算订单数量 +SELECT + SUBSTR(t1.order_time, 1, 4) AS "年份", + SUBSTR(t1.order_time, 6, 5) AS "日期", + SUM(t1.order_amt) + SUM(t2.order_freight_amt) AS "销售金额(元)(包含运费)", + SUM(t2.order_freight_amt) AS "运费金额(元)", + COUNT(t1.platform_order_no) AS "订单数量" +FROM (SELECT store_code, platform_order_no, MIN(order_time) AS order_time, SUM(goods_amt) AS order_amt + FROM custom_online_sale_order_local + GROUP BY store_code, platform_order_no +) t1 LEFT JOIN ( + -- EC算运费 + SELECT store_code, platform_order_no, SUM(order_freight_amt_t) AS order_freight_amt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MAX(order_freight_amt) AS order_freight_amt_t + FROM custom_online_sale_order_local + WHERE source_system IN ('EC_HIS_NEW', 'EC_HIS2') AND order_freight_amt <> 0 + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no +) t2 ON t1.store_code = t2.store_code AND t1.platform_order_no = t2.platform_order_no +WHERE t1.order_time >= '2022-01-01' AND t1.order_time <= '2025-06-30' +GROUP BY SUBSTR(t1.order_time, 1, 4), SUBSTR(t1.order_time, 6, 5) +ORDER BY SUBSTR(t1.order_time, 1, 4), (SUM(t1.order_amt) + SUM(t2.order_freight_amt)) DESC; + +-- 账单店铺金额 +SELECT + SUBSTR(order_time, 1, 4) AS "年份", + SUBSTR(order_time, 6, 5) AS "日期", + SUM(goods_amt) AS "销售金额(元)" +FROM custom_online_sale_bill_local +WHERE goods_amt >= 0 +GROUP BY SUBSTR(order_time, 1, 4), SUBSTR(order_time, 6, 5) +ORDER BY SUBSTR(order_time, 1, 4), SUM(goods_amt) DESC; + + +-- 按照小时算 ---------- +SELECT + SUBSTR(t1.order_time_t, 1, 4) AS "年份", + t1.time_area AS "时间区间", + SUM(t1.order_amt) + SUM(t2.order_freight_amt) AS "销售金额(元)(包含运费)", + SUM(t2.order_freight_amt) AS "运费金额(元)", + COUNT(t1.platform_order_no) AS "订单数量" +FROM (SELECT store_code, platform_order_no, MIN(order_time) AS order_time_t, SUM(goods_amt) AS order_amt, + CASE WHEN LENGTH(MIN(order_time)) > 10 THEN + CASE + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 0 THEN '0-1点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 1 THEN '1-2点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 2 THEN '2-3点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 3 THEN '3-4点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 4 THEN '4-5点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 5 THEN '5-6点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 6 THEN '6-7点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 7 THEN '7-8点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 8 THEN '8-9点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 9 THEN '9-10点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 10 THEN '10-11点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 11 THEN '11-12点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 12 THEN '12-13点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 13 THEN '13-14点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 14 THEN '14-15点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 15 THEN '15-16点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 16 THEN '16-17点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 17 THEN '17-18点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 18 THEN '18-19点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 19 THEN '19-20点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 20 THEN '20-21点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 21 THEN '21-22点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 22 THEN '22-23点' + WHEN toInt32(SUBSTR(MIN(order_time), 12, 2)) = 23 THEN '23-24点' + END + ELSE '其他' END AS time_area + FROM custom_online_sale_order_local + GROUP BY store_code, platform_order_no +) t1 LEFT JOIN ( + -- EC算运费 + SELECT store_code, platform_order_no, SUM(order_freight_amt_t) AS order_freight_amt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MAX(order_freight_amt) AS order_freight_amt_t + FROM custom_online_sale_order_local + WHERE source_system IN ('EC_HIS_NEW', 'EC_HIS2') AND order_freight_amt <> 0 + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no +) t2 ON t1.store_code = t2.store_code AND t1.platform_order_no = t2.platform_order_no +WHERE t1.order_time_t >= '2022-01-01' AND t1.order_time_t <= '2025-06-30' AND time_area <> '其他' +GROUP BY SUBSTR(t1.order_time_t, 1, 4), t1.time_area +ORDER BY SUBSTR(t1.order_time_t, 1, 4), (SUM(t1.order_amt) + SUM(t2.order_freight_amt)) DESC; + +-- 账单店铺金额 +-- 22 23年没有带时间的 +SELECT + SUBSTR(order_time, 1, 4) AS "年份", + time_area AS "时间区间", + SUM(goods_amt) AS "销售金额(元)" +FROM (SELECT + order_time, + CASE + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 0 THEN '0-1点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 1 THEN '1-2点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 2 THEN '2-3点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 3 THEN '3-4点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 4 THEN '4-5点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 5 THEN '5-6点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 6 THEN '6-7点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 7 THEN '7-8点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 8 THEN '8-9点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 9 THEN '9-10点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 10 THEN '10-11点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 11 THEN '11-12点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 12 THEN '12-13点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 13 THEN '13-14点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 14 THEN '14-15点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 15 THEN '15-16点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 16 THEN '16-17点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 17 THEN '17-18点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 18 THEN '18-19点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 19 THEN '19-20点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 20 THEN '20-21点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 21 THEN '21-22点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 22 THEN '22-23点' + WHEN toInt32(SUBSTR(order_time, 12, 2)) = 23 THEN '23-24点' + END AS time_area, + goods_amt + FROM custom_online_sale_bill_local + WHERE goods_amt >= 0 AND LENGTH(order_time) > 10 +) GROUP BY SUBSTR(order_time, 1, 4), time_area +ORDER BY SUBSTR(order_time, 1, 4), SUM(goods_amt) DESC; + +------------------------------------------------------------------ +-- 3.4线上每年大促期间店铺销售金额、订单数量和占比 +SELECT + t1.store_code AS "店铺编码", + MAX(t1.store_name) AS "店铺名称", + SUM(t1.order_amt) + SUM(t2.order_freight_amt) AS "销售金额(元)(包含运费)", + SUM(t2.order_freight_amt) AS "运费金额(元)", + COUNT(t1.platform_order_no) AS "订单数量" +FROM (SELECT store_code, platform_order_no, MAX(store_name) AS store_name, MIN(order_time) AS order_time, SUM(goods_amt) AS order_amt + FROM custom_online_sale_order_local + GROUP BY store_code, platform_order_no +) t1 LEFT JOIN ( + -- EC算运费 + SELECT store_code, platform_order_no, SUM(order_freight_amt_t) AS order_freight_amt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MAX(order_freight_amt) AS order_freight_amt_t + FROM custom_online_sale_order_local + WHERE source_system IN ('EC_HIS_NEW', 'EC_HIS2') AND order_freight_amt <> 0 + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no +) t2 ON t1.store_code = t2.store_code AND t1.platform_order_no = t2.platform_order_no +WHERE t1.order_time >= '2022-06-01' AND t1.order_time <= '2022-06-30' +GROUP BY t1.store_code +ORDER BY (SUM(t1.order_amt) + SUM(t2.order_freight_amt)) DESC; + +-- 账单店铺金额 +SELECT + store_code AS "店铺编码", + MAX(store_name) AS "店铺名称", + SUM(goods_amt) AS "销售金额(元)" +FROM custom_online_sale_bill_local +WHERE goods_amt >= 0 AND order_time >= '2022-06-01' AND order_time <= '2022-06-30' +GROUP BY store_code +ORDER BY SUM(goods_amt) DESC; + +------------------------------------------------------------------ +-- 4.1线上每年订单下单和发货间隔的销售金额、订单数量分布 +-- 1586424条平台订单物流单号为空 +SELECT source_system, COUNT() FROM custom_online_sale_order_local WHERE main_logistic_bill = '' GROUP BY source_system; +-- 1,780,404 条平台订单发货时间为空 +SELECT source_system, COUNT() FROM custom_online_sale_order_local WHERE deliver_time = '' GROUP BY source_system; +-- SBZ XSDD的40条财务手工的单子发货时间不为空,其他都为空 账单的做不了 +SELECT * FROM custom_online_sale_bill_local WHERE deliver_time <> ''; + +SELECT + SUBSTR(t1.order_time_t, 1, 4) AS "年份", + t1.time_diff AS "发货间隔", + SUM(t1.order_amt) + SUM(t2.order_freight_amt) AS "销售金额(元)(包含运费)", + SUM(t2.order_freight_amt) AS "运费金额(元)", + COUNT(t1.platform_order_no) AS "订单数量" +FROM (SELECT store_code, platform_order_no, MIN(order_time) AS order_time_t, MIN(deliver_time) AS deliver_time_t, SUM(goods_amt) AS order_amt, + CASE WHEN MIN(deliver_time) <> '' AND MIN(order_time) <> '' THEN + CASE + WHEN dateDiff('minute', toDateTime(MIN(deliver_time)), toDateTime(MIN(order_time))) <= 240 THEN '0-4小时' + WHEN dateDiff('minute', toDateTime(MIN(deliver_time)), toDateTime(MIN(order_time))) > 240 + AND dateDiff('minute', toDateTime(MIN(deliver_time)), toDateTime(MIN(order_time))) <= 1440 THEN '4-24小时' + WHEN dateDiff('minute', toDateTime(MIN(deliver_time)), toDateTime(MIN(order_time))) > 1440 + AND dateDiff('minute', toDateTime(MIN(deliver_time)), toDateTime(MIN(order_time))) <= 2880 THEN '24-48小时' + WHEN dateDiff('minute', toDateTime(MIN(deliver_time)), toDateTime(MIN(order_time))) > 2880 THEN '大于48小时' + END + ELSE '其他' + END AS time_diff + FROM custom_online_sale_order_local + GROUP BY store_code, platform_order_no +) t1 LEFT JOIN ( + -- EC算运费 + SELECT store_code, platform_order_no, SUM(order_freight_amt_t) AS order_freight_amt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MAX(order_freight_amt) AS order_freight_amt_t + FROM custom_online_sale_order_local + WHERE source_system IN ('EC_HIS_NEW', 'EC_HIS2') AND order_freight_amt <> 0 + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no +) t2 ON t1.store_code = t2.store_code AND t1.platform_order_no = t2.platform_order_no +WHERE t1.order_time_t >= '2022-01-01' AND t1.order_time_t <= '2025-06-30' AND time_diff <> '其他' +GROUP BY SUBSTR(t1.order_time_t, 1, 4), t1.time_diff +ORDER BY SUBSTR(t1.order_time_t, 1, 4), (SUM(t1.order_amt) + SUM(t2.order_freight_amt)) DESC; + +------------------------------------------------------------------ +-- 4.2线上每年各物流承运商销售金额、订单数量 +-- 932303条平台订单物流承运商为空 账单的为SBZ 40条财务手工单,无平台订单号不考虑 +SELECT COUNT(DISTINCT platform_order_no) FROM custom_online_sale_order_local WHERE carrier = ''; + +SELECT carrier, COUNT(DISTINCT platform_order_no) FROM custom_online_sale_order_local GROUP BY carrier; + +SELECT + SUBSTR(t1.order_time, 1, 4) AS "年份", + t1.carrierName AS "承运商", + SUM(t1.order_amt) + SUM(t2.order_freight_amt) AS "销售金额(元)(包含运费)", + SUM(t2.order_freight_amt) AS "运费金额(元)", + COUNT(t1.platform_order_no) AS "订单数量" +FROM (SELECT store_code, platform_order_no, MIN(order_time) AS order_time, SUM(goods_amt) AS order_amt, MAX(carrier) AS carrier, + CASE + WHEN carrier IN ('shunfeng') OR carrier LIKE 'sf%' OR carrier LIKE 'SF%' OR carrier LIKE '顺丰%' THEN '顺丰' + WHEN carrier IN ('postb', 'eyb') OR carrier LIKE 'ems%' OR carrier LIKE 'EMS%' THEN '邮政' + WHEN carrier LIKE 'yunda%' OR carrier LIKE 'YUNDA%' THEN '韵达' + WHEN carrier IN ('ZT') OR carrier LIKE 'zto%' OR carrier LIKE 'ZTO%' OR carrier LIKE '中通%' THEN '中通' + WHEN carrier LIKE 'jd%' OR carrier LIKE 'JD%' OR carrier LIKE '京东%' THEN '京东' + WHEN carrier IN ('ST#DW', 'ST') OR carrier LIKE 'sto%' OR carrier LIKE 'STO%' OR carrier LIKE '申通%' THEN '申通' + WHEN carrier LIKE 'jt%' OR carrier LIKE 'JT%' THEN '极兔' + WHEN carrier IN ('YT') OR carrier LIKE 'yto%' OR carrier LIKE 'YTO%' OR carrier LIKE '圆通%' THEN '圆通' + WHEN carrier IN ('rider') THEN '骑士' + WHEN carrier IN ('dbl') THEN '德邦' + WHEN carrier IN ('htky') THEN '汇通' + WHEN carrier IN ('QSKD') THEN '千顺' + WHEN carrier IN ('fengwang') THEN '丰网' + WHEN carrier IN ('best') THEN '百世' + WHEN carrier IN ('ttkdex') THEN '天天' + ELSE carrier + END AS carrierName + FROM custom_online_sale_order_local + GROUP BY store_code, platform_order_no +) t1 LEFT JOIN ( + -- EC算运费 + SELECT store_code, platform_order_no, SUM(order_freight_amt_t) AS order_freight_amt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MAX(order_freight_amt) AS order_freight_amt_t + FROM custom_online_sale_order_local + WHERE source_system IN ('EC_HIS_NEW', 'EC_HIS2') AND order_freight_amt <> 0 + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no +) t2 ON t1.store_code = t2.store_code AND t1.platform_order_no = t2.platform_order_no +WHERE t1.order_time >= '2022-01-01' AND t1.order_time <= '2025-06-30' +GROUP BY SUBSTR(t1.order_time, 1, 4), t1.carrierName +ORDER BY SUBSTR(t1.order_time, 1, 4), (SUM(t1.order_amt) + SUM(t2.order_freight_amt)) DESC; + +------------------------------------------------------------------ +-- 4.3线上每年各月物流单数量 +-- 按照最小下单时间,物流单往前归 +SELECT + SUBSTR(t2.order_time_t, 1, 4) AS "年份", + SUBSTR(t2.order_time_t, 6, 2) AS "月份", + COUNT(DISTINCT t1.main_logistic_bill) AS "物流单数量" +FROM (SELECT * + FROM custom_online_sale_order_local +) t1 LEFT JOIN (SELECT store_code, platform_order_no, MIN(order_time) AS order_time_t + FROM custom_online_sale_order_local + GROUP BY store_code, platform_order_no +) t2 ON t1.store_code = t2.store_code AND t1.platform_order_no = t2.platform_order_no +WHERE t2.order_time_t >= '2022-01-01' AND t2.order_time_t <= '2025-06-30' AND main_logistic_bill <> '' +GROUP BY SUBSTR(t2.order_time_t, 1, 4), SUBSTR(t2.order_time_t, 6, 2) +ORDER BY SUBSTR(t2.order_time_t, 1, 4), SUBSTR(t2.order_time_t, 6, 2); + +------------------------------------------------------------------ +-- 5.1线上各店铺每年度退款金额 +-- 换货的退款怎么区分 +SELECT + SUBSTR(t1.order_time, 1, 4) AS "年份", + t1.store_code AS "店铺编码", + MAX(t1.store_name) AS "店铺名称", + SUM(t1.order_amt) + SUM(t2.order_freight_amt) AS "销售金额(元)(包含运费)", + SUM(t2.order_freight_amt) AS "运费金额(元)", + COUNT(t1.platform_order_no) AS "订单数量", + ROUND((SUM(t1.order_amt) + SUM(t2.order_freight_amt)) / COUNT(t1.platform_order_no), 2) AS "订单均价(元)" +FROM (SELECT store_code, platform_order_no, MAX(store_name) AS store_name, MIN(create_time) AS create_time, SUM(goods_amt) AS order_amt + FROM custom_online_sale_return_local + GROUP BY store_code, platform_order_no +) t1 LEFT JOIN ( + -- EC算运费 + SELECT store_code, platform_order_no, SUM(order_freight_amt_t) AS order_freight_amt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MAX(order_freight_amt) AS order_freight_amt_t + FROM custom_online_sale_order_local + WHERE source_system IN ('EC_HIS_NEW', 'EC_HIS2') AND order_freight_amt <> 0 + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY store_code, platform_order_no +) t2 ON t1.store_code = t2.store_code AND t1.platform_order_no = t2.platform_order_no +WHERE t1.order_time >= '2022-01-01' AND t1.order_time <= '2025-06-30' +GROUP BY SUBSTR(t1.order_time, 1, 4), t1.store_code +ORDER BY SUBSTR(t1.order_time, 1, 4), (SUM(t1.order_amt) + SUM(t2.order_freight_amt)) DESC; + +-- 账单店铺金额 +SELECT + SUBSTR(order_time, 1, 4) AS "年份", + store_code AS "店铺编码", + MAX(store_name) AS "店铺名称", + SUM(goods_amt) AS "退款金额(元)" +FROM custom_online_sale_bill_local +WHERE goods_amt < 0 +GROUP BY SUBSTR(order_time, 1, 4), store_code +ORDER BY SUBSTR(order_time, 1, 4), SUM(goods_amt) DESC; + +------------------------------------------------------------------ +-- 5.2线上各店铺每年退款订单数量 + +------------------------------------------------------------------ +-- 5.3线上每年退款大于原销售的差异金额、订单数量 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 5.4线上每年各月退款金额 + +------------------------------------------------------------------ +-- 5.5线上每年各月退款订单数量 + +------------------------------------------------------------------ +-- 5.6线上每年订单退款金额分布 + +------------------------------------------------------------------ +-- 6.1线上每年净销售金额前100订单净销售金额 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 6.2线上每年净销售金额前100订单各省份净销售金额 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 6.3线上每年净销售金额前100订单各商品净销售金额 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 7.1线上每年会员数量 + +------------------------------------------------------------------ +-- 7.2线上每年活跃会员数量及其占比 + +------------------------------------------------------------------ +-- 7.3线上每年会员新增、注销数量 + +------------------------------------------------------------------ +-- 7.4线上每年会员积分新增、消耗、清零数量 + +------------------------------------------------------------------ \ No newline at end of file diff --git a/数据分析/v3/正式-查询-钱货两清时间.sql b/数据分析/v3/正式-查询-钱货两清时间.sql new file mode 100644 index 0000000..84d0761 --- /dev/null +++ b/数据分析/v3/正式-查询-钱货两清时间.sql @@ -0,0 +1,949 @@ +-- 1.1线上各店铺每年度销售金额、订单数量、订单均价 +-- 数量和单价只能计算有订单的,账单的不能算 +SELECT + SUBSTR(mgclear_time_t, 1, 4) AS "年份", + store_code AS "店铺编码", + MAX(store_name_t) AS "店铺名称", + SUM(goods_amt_t) AS "销售金额(元)", + SUM(order_freight_amt_t) AS "运费金额(元)", + SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额(元)(包含运费)", + COUNT(DISTINCT platform_order_no) AS "订单数量", + ROUND((SUM(goods_amt_t) + SUM(order_freight_amt_t)) / COUNT(DISTINCT platform_order_no), 2) AS "订单均价(元)" +FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(mgclear_time) AS mgclear_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t + FROM custom_online_sale_order_local + WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' + GROUP BY store_code, system_order_no, platform_order_no +) +GROUP BY SUBSTR(mgclear_time_t, 1, 4), store_code +ORDER BY SUBSTR(mgclear_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC; + +-- 账单店铺金额 +SELECT + SUBSTR(mgclear_time, 1, 4) AS "年份", + store_code AS "店铺编码", + MAX(store_name) AS "店铺名称", + SUM(goods_amt) AS "销售金额(元)" +FROM custom_online_sale_bill_local +WHERE goods_amt >= 0 AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' +GROUP BY SUBSTR(mgclear_time, 1, 4), store_code +ORDER BY SUBSTR(mgclear_time, 1, 4), SUM(goods_amt) DESC; + +------------------------------------------------------------------ +-- 1.2线上各店铺每年度净销售金额 +SELECT + t1.perYear AS "年份", + t1.store_code AS "店铺编码", + t1.storeName AS "店铺名称", + t1.goodsAmt AS "销售金额(元)", + t1.orderFreightAmt AS "运费金额(元)", + t2.returnGoodsAmt AS "退货金额(元)", + t2.returnFreightAmt AS "退货运费金额(元)", + t3.orderChangeAmt AS "发货调整金额(元)", + t1.goodsAmt + t1.orderFreightAmt + t2.returnGoodsAmt + + t2.returnFreightAmt + t3.orderChangeAmt AS "净销售金额(元)" +FROM ( + SELECT + SUBSTR(mgclear_time_t, 1, 4) AS perYear, + store_code, + MAX(store_name_t) AS storeName, + SUM(goods_amt_t) AS goodsAmt, + SUM(order_freight_amt_t) AS orderFreightAmt + FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(mgclear_time) AS mgclear_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t + FROM custom_online_sale_order_local + WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY SUBSTR(mgclear_time_t, 1, 4), store_code +) t1 LEFT JOIN ( + SELECT + SUBSTR(mgclear_time_t, 1, 4) AS perYear, + store_code, + SUM(return_freight_amt_t) AS returnFreightAmt, + SUM(return_goods_amt_t) AS returnGoodsAmt + FROM (SELECT + store_code, + system_order_no, + platform_order_no, + MIN(mgclear_time) AS mgclear_time_t, + MAX(return_freight_amt) AS return_freight_amt_t, + SUM(return_goods_qty) AS return_goods_qty_t, + SUM(return_goods_amt) AS return_goods_amt_t + FROM custom_online_sale_return_local + WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' + GROUP BY store_code, system_order_no, platform_order_no + ) GROUP BY SUBSTR(mgclear_time_t, 1, 4), store_code +) t2 ON t1.perYear = t2.perYear AND t1.store_code = t2.store_code +LEFT JOIN ( + SELECT SUBSTR(mgclear_time, 1, 4) AS perYear, store_code, SUM(special_barcode_amt) AS orderChangeAmt + FROM custom_online_sale_change_local + WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' + GROUP BY SUBSTR(mgclear_time, 1, 4), store_code +) t3 ON t1.perYear = t3.perYear AND t1.store_code = t3.store_code +ORDER BY t1.perYear, t1.goodsAmt + t1.orderFreightAmt + t2.returnGoodsAmt + + t2.returnFreightAmt + t3.orderChangeAmt DESC; + +-- 账单店铺金额 +SELECT + t1.perYear AS "年份", + t1.store_code AS "店铺编码", + t1.store_name AS "店铺名称", + t1.sale_amount AS "销售金额(元)", + t2.return_amount AS "退货金额(元)", + t1.sale_amount + t2.return_amount AS "净销售金额(元)" +FROM (SELECT + SUBSTR(mgclear_time, 1, 4) AS perYear, + store_code, + MAX(store_name) AS store_name, + SUM(goods_amt) AS sale_amount + FROM custom_online_sale_bill_local + WHERE goods_amt >= 0 AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' + GROUP BY SUBSTR(mgclear_time, 1, 4), store_code +) t1 LEFT JOIN ( + SELECT + SUBSTR(mgclear_time, 1, 4) AS perYear, + store_code, + SUM(goods_amt) AS return_amount + FROM custom_online_sale_bill_local + WHERE goods_amt < 0 AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' + GROUP BY SUBSTR(mgclear_time, 1, 4), store_code +) t2 ON t1.perYear = t2.perYear AND t1.store_code = t2.store_code +ORDER BY t1.perYear, (t1.sale_amount + t2.return_amount) DESC; + +------------------------------------------------------------------ +-- 1.3线上各店铺每年月度销售金额 +SELECT + SUBSTR(mgclear_time_t, 1, 4) AS "年份", + SUBSTR(mgclear_time_t, 6, 2) AS "月份", + store_code AS "店铺编码", + MAX(store_name_t) AS "店铺名称", + SUM(goods_amt_t) AS "销售金额(元)", + SUM(order_freight_amt_t) AS "运费金额(元)", + SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额(元)(包含运费)", + COUNT(DISTINCT platform_order_no) AS "订单数量", + ROUND((SUM(goods_amt_t) + SUM(order_freight_amt_t)) / COUNT(DISTINCT platform_order_no), 2) AS "订单均价(元)" +FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(mgclear_time) AS mgclear_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t + FROM custom_online_sale_order_local + WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' + GROUP BY store_code, system_order_no, platform_order_no +) +GROUP BY SUBSTR(mgclear_time_t, 1, 4), SUBSTR(mgclear_time_t, 6, 2), store_code +ORDER BY SUBSTR(mgclear_time_t, 1, 4), store_code, SUBSTR(mgclear_time_t, 6, 2); + +-- 账单店铺金额 +SELECT + SUBSTR(mgclear_time, 1, 4) AS "年份", + SUBSTR(mgclear_time, 6, 2) AS "月份", + store_code AS "店铺编码", + MAX(store_name) AS "店铺名称", + SUM(goods_amt) AS "销售金额(元)" +FROM custom_online_sale_bill_local +WHERE goods_amt >= 0 AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' +GROUP BY SUBSTR(mgclear_time, 1, 4), SUBSTR(mgclear_time, 6, 2), store_code +ORDER BY SUBSTR(mgclear_time, 1, 4), store_code, SUBSTR(mgclear_time, 6, 2); + +------------------------------------------------------------------ +-- 1.4线上每年前五店铺金额分布 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 1.5线上每年各产品数量、产品销售金额 +-- 订单中6条商品为空的, 忽略 +SELECT COUNT() FROM custom_online_sale_order_local WHERE goods_barcode =''; + +SELECT * FROM custom_online_sale_order_local; + +SELECT * FROM dim_hkaudit_goods_mt WHERE barcode IN ( +SELECT barcode +FROM dim_hkaudit_goods_mt GROUP BY barcode HAVING COUNT(DISTINCT goods_code) > 1) +ORDER By barcode ; + +SELECT * FROM dim_hkaudit_goods_mt dhgm WHERE barcode = 'VRDBJ41159A01001A11'; +SELECT * FROM dim_hkaudit_goods_mt WHERE goods_code IN (SELECT goods_barcode FROM audit_bi_pro.custom_online_sale_order_local); + + +SELECT * FROM dim_hkaudit_goods_mt a left join custom_online_sale_order_local b on a.barcode = b.goods_barcode ; + +SELECT COUNT() FROM dim_hkaudit_goods_mt; +SELECT COUNT() FROM dim_hkaudit_goods_mt_local; + +-- 不关联商品名称(每个表单独算) +--SELECT +-- SUBSTR(mgclear_time, 1, 4) AS "年份", +-- goods_barcode AS "商品条码", +-- SUM(goods_qty) AS "商品数量", +-- SUM(goods_amt) AS "商品销售金额(元)" +--FROM custom_online_sale_order_local +--WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' +--GROUP BY SUBSTR(mgclear_time, 1, 4), goods_barcode +--ORDER BY SUBSTR(mgclear_time, 1, 4), SUM(goods_amt) DESC; + +-- 账单店铺金额 +--SELECT +-- SUBSTR(mgclear_time, 1, 4) AS "年份", +-- goods_barcode AS "商品条码", +-- SUM(goods_qty) AS "商品数量", +-- SUM(goods_amt) AS "商品销售金额(元)" +--FROM custom_online_sale_bill_local +--WHERE goods_amt >= 0 mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' +--GROUP BY SUBSTR(mgclear_time, 1, 4), goods_barcode +--ORDER BY SUBSTR(mgclear_time, 1, 4), SUM(goods_amt) DESC; + +-- 关联名称 +--SELECT +-- SUBSTR(t1.mgclear_time, 1, 4) AS "年份", +-- t1.goods_barcode AS "商品条码", +-- MAX(t2.goods_names) AS "商品名称(多个合并)", +-- SUM(t1.goods_qty) AS "商品数量", +-- SUM(t1.goods_amt) AS "商品销售金额(元)" +--FROM custom_online_sale_order_local t1 +--LEFT JOIN (SELECT barcode, arrayStringConcat(groupArray(goods_desc), ',') AS goods_names FROM dim_hkaudit_goods_mt GROUP BY barcode +--) t2 ON t1.goods_barcode = t2.barcode +--WHERE t1.mgclear_time <> '' AND SUBSTR(t1.mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(t1.mgclear_time, 1, 10) <= '2025-06-30' +--GROUP BY SUBSTR(t1.mgclear_time, 1, 4), t1.goods_barcode +--ORDER BY SUBSTR(t1.mgclear_time, 1, 4), SUM(t1.goods_amt) DESC; + +---------------------- +-- 不关联商品名称(两表合并算) +--SELECT +-- perYear AS "年份", +-- goods_barcode AS "商品条码", +-- SUM(goods_qty) AS "商品数量", +-- SUM(goods_amt) AS "商品销售金额(元)" +--FROM (SELECT +-- SUBSTR(mgclear_time, 1, 4) AS perYear, +-- goods_barcode, +-- goods_qty, +-- goods_amt +-- FROM custom_online_sale_order_local +-- WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' +-- UNION ALL +-- SELECT +-- SUBSTR(mgclear_time, 1, 4) AS perYear, +-- goods_barcode, +-- goods_qty, +-- goods_amt +-- FROM custom_online_sale_bill_local +-- WHERE goods_amt >= 0 AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' +--) +--GROUP BY perYear, goods_barcode +--ORDER BY perYear, SUM(goods_amt) DESC; + +-- 关联商品名称 +SELECT + t1.perYear AS "年份", + t1.goods_barcode AS "商品条码", + MAX(t2.goods_names) AS "商品名称(多个合并)", + SUM(t1.goods_qty) AS "商品数量", + SUM(t1.goods_amt) AS "商品销售金额(元)" +FROM (SELECT + SUBSTR(mgclear_time, 1, 4) AS perYear, + goods_barcode, + goods_qty, + goods_amt + FROM custom_online_sale_order_local + WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' + UNION ALL + SELECT + SUBSTR(mgclear_time, 1, 4) AS perYear, + goods_barcode, + goods_qty, + goods_amt + FROM custom_online_sale_bill_local + WHERE goods_amt >= 0 AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' +) t1 LEFT JOIN ( + SELECT barcode, arrayStringConcat(groupArray(goods_desc), ',') AS goods_names FROM dim_hkaudit_goods_mt GROUP BY barcode +) t2 ON t1.goods_barcode = t2.barcode +GROUP BY t1.perYear, t1.goods_barcode +ORDER BY t1.perYear, SUM(t1.goods_amt) DESC; + +------------------------------------------------------------------ +-- 2.1线上每年各省份销售金额、订单数量及其占比 +-- 1234791条平台订单没有省份 +SELECT COUNT(DISTINCT platform_order_no) FROM custom_online_sale_order_local WHERE province = ''; +SELECT source_system, COUNT(DISTINCT platform_order_no) FROM custom_online_sale_order_local WHERE province = '' GROUP BY source_system; +-- 只能计算有订单的,账单的不能算(没有省份) +-- 考虑店铺单号重复问题 非换货单有946单重复,加上换货单有1229条重复 +-- 忽略省份为空的平台订单 +-- 同一平台订单号在多个店铺存在的有1230单 暂时不考虑这种情况 +SELECT COUNT() FROM ( +SELECT platform_order_no FROM custom_online_sale_order_local GROUP BY platform_order_no HAVING COUNT(DISTINCT store_code) > 1); + +SELECT + a.perYear AS "年份", + a.province_t AS "省份", + a.goodsAmt AS "销售金额(元)", + a.orderFreightAmt AS "运费金额(元)", + a.goodsAmt + a.orderFreightAmt AS "销售金额(元)(包含运费)", + a.order_amt AS "订单数量", + b.all_order_count AS "订单总数量", + ROUND((a.goodsAmt + a.orderFreightAmt) / b.all_order_count, 2) AS "订单占比" +FROM (SELECT + SUBSTR(mgclear_time_t, 1, 4) AS perYear, + province_t, + SUM(goods_amt_t) AS goodsAmt, + SUM(order_freight_amt_t) AS orderFreightAmt, + COUNT(DISTINCT platform_order_no) AS order_amt + FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(mgclear_time) AS mgclear_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t, + MAX(province) AS province_t + FROM custom_online_sale_order_local + WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' AND province <> '' + GROUP BY store_code, system_order_no, platform_order_no + ) + GROUP BY SUBSTR(mgclear_time_t, 1, 4), province_t +) a LEFT JOIN ( + SELECT + perYear, + SUM(order_amt) AS all_order_count + FROM (SELECT SUBSTR(mgclear_time, 1, 4) AS perYear, province, COUNT(DISTINCT platform_order_no) AS order_amt + FROM custom_online_sale_order_local + WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' AND province <> '' + GROUP BY SUBSTR(mgclear_time, 1, 4), province + ) GROUP BY perYear +) b ON a.perYear = b.perYear +ORDER BY a.perYear, a.goodsAmt + a.orderFreightAmt DESC; + +-- 考虑同一订单号多个店铺情况 +--SELECT +-- a.perYear AS "年份", +-- a.province_t AS "省份", +-- a.goodsAmt AS "销售金额(元)", +-- a.orderFreightAmt AS "运费金额(元)", +-- a.goodsAmt + a.orderFreightAmt AS "销售金额(元)(包含运费)", +-- a.order_amt AS "订单数量", +-- b.all_order_count AS "订单总数量", +-- ROUND((a.sale_amount + a.freight_amount) / b.all_order_count, 2) AS "订单占比" +--FROM (SELECT +-- perYear, +-- province_t, +-- SUM(goods_amt_t_t) AS goodsAmt, +-- xxx +-- FROM (SELECT +-- SUBSTR(mgclear_time_t, 1, 4) AS perYear, +-- store_code, +-- province_t, +-- SUM(goods_amt_t) AS goods_amt_t_t, +-- SUM(order_freight_amt_t) AS order_freight_amt_t_t, +-- COUNT(DISTINCT platform_order_no) AS order_amt_t +-- FROM (SELECT +-- store_code, +-- MAX(store_name) AS store_name_t, +-- system_order_no, +-- platform_order_no, +-- MIN(mgclear_time) AS mgclear_time_t, +-- MAX(order_freight_amt) AS order_freight_amt_t, +-- SUM(goods_qty) AS goods_qty_t, +-- SUM(goods_amt) AS goods_amt_t, +-- MAX(province) AS province_t +-- FROM custom_online_sale_order_local +-- GROUP BY store_code, system_order_no, platform_order_no +-- ) +-- WHERE mgclear_time_t <> '' AND SUBSTR(mgclear_time_t, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time_t, 1, 10) <= '2025-06-30' +-- GROUP BY SUBSTR(mgclear_time_t, 1, 4), store_code, province_t +-- ) GROUP BY perYear, province_t +--) a + +------------------------------------------------------------------ +-- 2.2线上每年各等级城市销售金额、订单数量及其占比 +-- 城市为空 -> 其他 +-- 省直辖县级行政区 -> 区域替换城市(其他区和空也直接换) +-- 湖北省直辖县 -> 区域替换城市(其它区也直接换) +-- 县 -> 省份替换城市 +-- 自治区直辖县级行政区划 -> 区域替换城市 +-- 省直辖县级行政区划 -> 区域替换城市(其他区和空也直接换) +-- 新疆维吾尔自治区直辖县 -> 区域替换城市 +-- 维吾尔自治区 -> 区域替换城市 +-- 河南省直辖县 -> 区域替换城市 +-- 市辖区 -> 省份替换城市 +-- 广东 -> 区域替换城市 +-- 湖北 -> 区域替换城市 +SELECT city, COUNT() FROM custom_online_sale_order_local GROUP BY city; + +SELECT DISTINCT region FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区'; +SELECT * FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区' AND region = ''; +SELECT * FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区' AND region = '其它区'; + +SELECT DISTINCT region FROM custom_online_sale_order_local WHERE city = '湖北省直辖县'; + +SELECT DISTINCT province FROM custom_online_sale_order_local WHERE city = '县'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '自治区直辖县级行政区划'; + +SELECT DISTINCT region FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区划'; +SELECT * FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区划' AND region = ''; +SELECT * FROM custom_online_sale_order_local WHERE city = '省直辖县级行政区划' AND region = '其它区'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '新疆维吾尔自治区直辖县'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '维吾尔自治区'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '河南省直辖县'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '市辖区'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '广东'; + +SELECT * FROM custom_online_sale_order_local WHERE city = '湖北'; + +-- 1236382条平台订单没有城市 +SELECT source_system, COUNT(DISTINCT platform_order_no) FROM custom_online_sale_order_local WHERE city = '' GROUP BY source_system; +-- 城市和等级关联到的只有5695单 需要手工调整 +SELECT DISTINCT city FROM custom_online_sale_order_local; +-- 只能计算有订单的,账单的不能算(没有城市) +-- 忽略城市为空的平台订单 +SELECT + a.perYear AS "年份", + a.city_grade_t AS "城市等级", + a.goodsAmt AS "销售金额(元)", + a.orderFreightAmt AS "运费金额(元)", + a.goodsAmt + a.orderFreightAmt AS "销售金额(元)(包含运费)", + a.order_amt AS "订单数量", + b.all_order_count AS "订单总数量", + ROUND((a.goodsAmt + a.orderFreightAmt) / b.all_order_count, 2) AS "订单占比" +FROM (SELECT + SUBSTR(mgclear_time_t, 1, 4) AS perYear, + city_grade_t, + SUM(goods_amt_t) AS goodsAmt, + SUM(order_freight_amt_t) AS orderFreightAmt, + COUNT(DISTINCT platform_order_no) AS order_amt + FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(mgclear_time) AS mgclear_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t, + MAX(t2.city_grade) AS city_grade_t + FROM custom_online_sale_order_local t1 + LEFT JOIN custom_online_city_grade_local t2 ON t1.city = t2.city + WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' AND t2.city_grade <> '' + GROUP BY store_code, system_order_no, platform_order_no + ) + GROUP BY SUBSTR(mgclear_time_t, 1, 4), city_grade_t +) a LEFT JOIN ( + SELECT + perYear, + SUM(order_amt) AS all_order_count + FROM (SELECT SUBSTR(mgclear_time, 1, 4) AS perYear, t2.city_grade, COUNT(DISTINCT platform_order_no) AS order_amt + FROM custom_online_sale_order_local t1 + LEFT JOIN custom_online_city_grade_local t2 ON t1.city = t2.city + WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' AND t2.city_grade <> '' + GROUP BY SUBSTR(mgclear_time, 1, 4), t2.city_grade + ) GROUP BY perYear +) b ON a.perYear = b.perYear +ORDER BY a.perYear, a.goodsAmt + a.orderFreightAmt DESC; + +------------------------------------------------------------------ +-- 3.1线上每年单笔订单金额分布及其占比 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 3.2线上每年同一个收货地址的地址数量、销售金额、订单数量 +-- 100053条 +SELECT platform_order_no FROM custom_online_sale_order_local GROUP BY platform_order_no HAVING COUNT(DISTINCT consignee_add) > 1; +SELECT * FROM custom_online_sale_order_local WHERE platform_order_no = '4920083542368856013A'; +-- SBZ换货没有标识 | 换货单或者手工单发货地址为明文,与平台是一个地址,但是平台属于密文,只取一个 +-- 1869294条平台订单没有收货地址,账单的都没有 +SELECT + SUBSTR(mgclear_time_t, 1, 4) AS "年份", + consignee_add_t AS "收货地址", + SUM(goods_amt_t) AS "销售金额(元)", + SUM(order_freight_amt_t) AS "运费金额(元)", + SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额(元)(包含运费)", + COUNT(DISTINCT platform_order_no) AS "订单数量" +FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(mgclear_time) AS mgclear_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t, + MAX(consignee_add) AS consignee_add_t + FROM custom_online_sale_order_local + WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' AND consignee_add <> '' + GROUP BY store_code, system_order_no, platform_order_no +) +GROUP BY SUBSTR(mgclear_time_t, 1, 4), consignee_add_t +ORDER BY SUBSTR(mgclear_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC; + +-- 省份+地址 +--SELECT COUNT() FROM custom_online_sale_order_local WHERE consignee_add = ''; -- 1869294 +--SELECT COUNT() FROM custom_online_sale_order_local WHERE province = ''; -- 1869251 +--SELECT COUNT() FROM custom_online_sale_order_local WHERE consignee_add = '' AND province = ''; -- 1869249 +-- +--SELECT +-- SUBSTR(mgclear_time_t, 1, 4) AS "年份", +-- consignee_add_t AS "收货地址", +-- SUM(goods_amt_t) AS "销售金额(元)", +-- SUM(order_freight_amt_t) AS "运费金额(元)", +-- SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额(元)(包含运费)", +-- COUNT(DISTINCT platform_order_no) AS "订单数量" +--FROM (SELECT +-- store_code, +-- MAX(store_name) AS store_name_t, +-- system_order_no, +-- platform_order_no, +-- MIN(mgclear_time) AS mgclear_time_t, +-- MAX(order_freight_amt) AS order_freight_amt_t, +-- SUM(goods_qty) AS goods_qty_t, +-- SUM(goods_amt) AS goods_amt_t, +-- CONCAT(MAX(province), MAX(consignee_add)) AS consignee_add_t +-- FROM custom_online_sale_order_local +-- WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' AND consignee_add <> '' +-- GROUP BY store_code, system_order_no, platform_order_no +--) +--GROUP BY SUBSTR(mgclear_time_t, 1, 4), consignee_add_t +--ORDER BY SUBSTR(mgclear_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC; + +------------------------------------------------------------------ +-- 3.3线上每年各天和各小时订单数量和销售金额 +-- mgclear_time没有时分秒的数量 28669 SBZE3的部分单子 计算各小时的需要去除,时间为空的1792612 +SELECT * FROM custom_online_sale_order_local WHERE mgclear_time <> '' AND LENGTH(mgclear_time) <= 10; +-- 账单mgclear_time没有时分秒的数量 0 ,时间为空的5093196 +SELECT COUNT() FROM custom_online_sale_bill_local WHERE mgclear_time = '' ; +SELECT COUNT() FROM custom_online_sale_bill_local WHERE mgclear_time <> '' AND LENGTH(mgclear_time) <= 10; +-- 账单的不能算订单数量 +SELECT + SUBSTR(mgclear_time_t, 1, 4) AS "年份", + SUBSTR(mgclear_time_t, 6, 5) AS "日期", + SUM(goods_amt_t) AS "销售金额(元)", + SUM(order_freight_amt_t) AS "运费金额(元)", + SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额(元)(包含运费)", + COUNT(DISTINCT platform_order_no) AS "订单数量" +FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(mgclear_time) AS mgclear_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t + FROM custom_online_sale_order_local + WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' + GROUP BY store_code, system_order_no, platform_order_no +) +GROUP BY SUBSTR(mgclear_time_t, 1, 4), SUBSTR(mgclear_time_t, 6, 5) +ORDER BY SUBSTR(mgclear_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC; + +-- 账单店铺金额 +SELECT + SUBSTR(mgclear_time, 1, 4) AS "年份", + SUBSTR(mgclear_time, 6, 5) AS "日期", + SUM(goods_amt) AS "销售金额(元)" +FROM custom_online_sale_bill_local +WHERE goods_amt >= 0 AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' +GROUP BY SUBSTR(mgclear_time, 1, 4), SUBSTR(mgclear_time, 6, 5) +ORDER BY SUBSTR(mgclear_time, 1, 4), SUM(goods_amt) DESC; + + +-- 按照小时算 ---------- +SELECT + SUBSTR(mgclear_time_t, 1, 4) AS "年份", + time_area AS "时间区间", + SUM(goods_amt_t) AS "销售金额(元)", + SUM(order_freight_amt_t) AS "运费金额(元)", + SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额(元)(包含运费)", + COUNT(DISTINCT platform_order_no) AS "订单数量" +FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(mgclear_time) AS mgclear_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t, + CASE WHEN LENGTH(mgclear_time_t) > 10 THEN + CASE + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 0 THEN '0-1点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 1 THEN '1-2点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 2 THEN '2-3点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 3 THEN '3-4点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 4 THEN '4-5点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 5 THEN '5-6点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 6 THEN '6-7点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 7 THEN '7-8点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 8 THEN '8-9点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 9 THEN '9-10点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 10 THEN '10-11点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 11 THEN '11-12点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 12 THEN '12-13点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 13 THEN '13-14点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 14 THEN '14-15点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 15 THEN '15-16点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 16 THEN '16-17点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 17 THEN '17-18点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 18 THEN '18-19点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 19 THEN '19-20点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 20 THEN '20-21点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 21 THEN '21-22点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 22 THEN '22-23点' + WHEN toInt32(SUBSTR(mgclear_time_t, 12, 2)) = 23 THEN '23-24点' + END + ELSE '其他' END AS time_area + FROM custom_online_sale_order_local + WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' + GROUP BY store_code, system_order_no, platform_order_no +) +WHERE time_area <> '其他' +GROUP BY SUBSTR(mgclear_time_t, 1, 4), time_area +ORDER BY SUBSTR(mgclear_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC; + +-- 账单店铺金额 +-- 22 23年没有带时间的 +SELECT + SUBSTR(mgclear_time, 1, 4) AS "年份", + time_area AS "时间区间", + SUM(goods_amt) AS "销售金额(元)" +FROM (SELECT + mgclear_time, + CASE + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 0 THEN '0-1点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 1 THEN '1-2点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 2 THEN '2-3点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 3 THEN '3-4点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 4 THEN '4-5点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 5 THEN '5-6点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 6 THEN '6-7点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 7 THEN '7-8点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 8 THEN '8-9点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 9 THEN '9-10点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 10 THEN '10-11点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 11 THEN '11-12点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 12 THEN '12-13点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 13 THEN '13-14点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 14 THEN '14-15点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 15 THEN '15-16点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 16 THEN '16-17点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 17 THEN '17-18点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 18 THEN '18-19点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 19 THEN '19-20点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 20 THEN '20-21点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 21 THEN '21-22点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 22 THEN '22-23点' + WHEN toInt32(SUBSTR(mgclear_time, 12, 2)) = 23 THEN '23-24点' + END AS time_area, + goods_amt + FROM custom_online_sale_bill_local + WHERE goods_amt >= 0 AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' AND LENGTH(mgclear_time) > 10 +) GROUP BY SUBSTR(mgclear_time, 1, 4), time_area +ORDER BY SUBSTR(mgclear_time, 1, 4), SUM(goods_amt) DESC; + +------------------------------------------------------------------ +-- 3.4线上每年大促期间店铺销售金额、订单数量和占比 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 4.1线上每年订单下单和发货间隔的销售金额、订单数量分布 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 4.2线上每年各物流承运商销售金额、订单数量 +-- 932303条平台订单物流承运商为空 账单的为SBZ 40条财务手工单,无平台订单号不考虑 +SELECT COUNT(DISTINCT platform_order_no) FROM custom_online_sale_order_local WHERE carrier = ''; + +SELECT carrier, COUNT(DISTINCT platform_order_no) FROM custom_online_sale_order_local GROUP BY carrier; + +SELECT + SUBSTR(mgclear_time_t, 1, 4) AS "年份", + carrierName AS "承运商", + SUM(goods_amt_t) AS "销售金额(元)", + SUM(order_freight_amt_t) AS "运费金额(元)", + SUM(goods_amt_t) + SUM(order_freight_amt_t) AS "销售金额(元)(包含运费)", + COUNT(DISTINCT platform_order_no) AS "订单数量" +FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(mgclear_time) AS mgclear_time_t, + MAX(order_freight_amt) AS order_freight_amt_t, + SUM(goods_qty) AS goods_qty_t, + SUM(goods_amt) AS goods_amt_t, + MAX(carrier) AS carrier_t, + CASE + WHEN carrier_t IN ('shunfeng') OR carrier_t LIKE 'sf%' OR carrier_t LIKE 'SF%' OR carrier_t LIKE '顺丰%' THEN '顺丰' + WHEN carrier_t IN ('postb', 'eyb') OR carrier_t LIKE 'ems%' OR carrier_t LIKE 'EMS%' THEN '邮政' + WHEN carrier_t LIKE 'yunda%' OR carrier_t LIKE 'YUNDA%' THEN '韵达' + WHEN carrier_t IN ('ZT') OR carrier_t LIKE 'zto%' OR carrier_t LIKE 'ZTO%' OR carrier_t LIKE '中通%' THEN '中通' + WHEN carrier_t LIKE 'jd%' OR carrier_t LIKE 'JD%' OR carrier_t LIKE '京东%' THEN '京东' + WHEN carrier_t IN ('ST#DW', 'ST') OR carrier_t LIKE 'sto%' OR carrier_t LIKE 'STO%' OR carrier_t LIKE '申通%' THEN '申通' + WHEN carrier_t LIKE 'jt%' OR carrier_t LIKE 'JT%' THEN '极兔' + WHEN carrier_t IN ('YT') OR carrier_t LIKE 'yto%' OR carrier_t LIKE 'YTO%' OR carrier_t LIKE '圆通%' THEN '圆通' + WHEN carrier_t IN ('rider') THEN '骑士' + WHEN carrier_t IN ('dbl') THEN '德邦' + WHEN carrier_t IN ('htky') THEN '汇通' + WHEN carrier_t IN ('QSKD') THEN '千顺' + WHEN carrier_t IN ('fengwang') THEN '丰网' + WHEN carrier_t IN ('best') THEN '百世' + WHEN carrier_t IN ('ttkdex') THEN '天天' + ELSE carrier_t + END AS carrierName + FROM custom_online_sale_order_local + WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' + GROUP BY store_code, system_order_no, platform_order_no +) +GROUP BY SUBSTR(mgclear_time_t, 1, 4), carrierName +ORDER BY SUBSTR(mgclear_time_t, 1, 4), SUM(goods_amt_t) + SUM(order_freight_amt_t) DESC; + +------------------------------------------------------------------ +-- 4.3线上每年各月物流单数量 +-- 按照最小下单时间,物流单往前归 +SELECT + SUBSTR(mgclear_time, 1, 4) AS "年份", + SUBSTR(mgclear_time, 6, 2) AS "月份", + COUNT(DISTINCT main_logistic_bill) AS "物流单数量" +FROM custom_online_sale_order_local +WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' AND main_logistic_bill <> '' +GROUP BY SUBSTR(mgclear_time, 1, 4), SUBSTR(mgclear_time, 6, 2) +ORDER BY SUBSTR(mgclear_time, 1, 4), SUBSTR(mgclear_time, 6, 2); + +------------------------------------------------------------------ +-- 5.1线上各店铺每年度退款金额 +-- 账单有没有和退款中重复的????????????? +-- 1200609条平台订单号为空 +SELECT COUNT() FROM custom_online_sale_return_local WHERE platform_order_no = ''; +-- 没有 +SELECT * FROM custom_online_sale_return_local WHERE platform_order_no <> '' AND platform_order_no IN (SELECT platform_order_no FROM custom_online_sale_bill_local); +-- 593条 DYE2 SF00891-19条 +SELECT * FROM custom_online_sale_return_local WHERE store_code IN (SELECT store_code FROM custom_online_sale_bill_local); +-- 1299161 +SELECT * FROM custom_online_sale_return_local WHERE mgclear_time = ''; +-- 换货的退款不区分 退款订单数量识别不出来,合并发货的平台单A,B,C只退B,退款平台单号也是A,B,C +SELECT + SUBSTR(mgclear_time_t, 1, 4) AS "年份", + store_code AS "店铺编码", + MAX(store_name_t) AS "店铺名称", + SUM(return_goods_amt_t) AS "退款金额(元)", + SUM(return_freight_amt_t) AS "退款运费金额(元)", + SUM(return_goods_amt_t) + SUM(return_freight_amt_t) AS "退款金额(元)(包含退款运费)" +FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(mgclear_time) AS mgclear_time_t, + MAX(return_freight_amt) AS return_freight_amt_t, + SUM(return_goods_qty) AS return_goods_qty_t, + SUM(return_goods_amt) AS return_goods_amt_t + FROM custom_online_sale_return_local + WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' + GROUP BY store_code, system_order_no, platform_order_no +) +GROUP BY SUBSTR(mgclear_time_t, 1, 4), store_code +ORDER BY SUBSTR(mgclear_time_t, 1, 4), SUM(return_goods_amt_t) + SUM(return_freight_amt_t); + +-- 账单店铺金额 +SELECT + SUBSTR(mgclear_time, 1, 4) AS "年份", + store_code AS "店铺编码", + MAX(store_name) AS "店铺名称", + SUM(goods_amt) AS "退款金额(元)" +FROM custom_online_sale_bill_local +WHERE goods_amt < 0 AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' +GROUP BY SUBSTR(mgclear_time, 1, 4), store_code +ORDER BY SUBSTR(mgclear_time, 1, 4), SUM(goods_amt); + +------------------------------------------------------------------ +-- 5.2线上各店铺每年退款订单数量 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 5.3线上每年退款大于原销售的差异金额、订单数量 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 5.4线上每年各月退款金额 +SELECT + SUBSTR(mgclear_time_t, 1, 4) AS "年份", + SUBSTR(mgclear_time_t, 6, 2) AS "月份", + SUM(return_goods_amt_t) AS "退款金额(元)", + SUM(return_freight_amt_t) AS "退款运费金额(元)", + SUM(return_goods_amt_t) + SUM(return_freight_amt_t) AS "退款金额(元)(包含退款运费)" +FROM (SELECT + store_code, + MAX(store_name) AS store_name_t, + system_order_no, + platform_order_no, + MIN(mgclear_time) AS mgclear_time_t, + MAX(return_freight_amt) AS return_freight_amt_t, + SUM(return_goods_qty) AS return_goods_qty_t, + SUM(return_goods_amt) AS return_goods_amt_t + FROM custom_online_sale_return_local + WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' + GROUP BY store_code, system_order_no, platform_order_no +) +GROUP BY SUBSTR(mgclear_time_t, 1, 4), SUBSTR(mgclear_time_t, 6, 2) +ORDER BY SUBSTR(mgclear_time_t, 1, 4), SUBSTR(mgclear_time_t, 6, 2); + +-- 账单店铺金额 +SELECT + SUBSTR(mgclear_time, 1, 4) AS "年份", + SUBSTR(mgclear_time, 6, 2) AS "月份", + SUM(goods_amt) AS "退款金额(元)" +FROM custom_online_sale_bill_local +WHERE goods_amt < 0 AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30' +GROUP BY SUBSTR(mgclear_time, 1, 4), SUBSTR(mgclear_time, 6, 2) +ORDER BY SUBSTR(mgclear_time, 1, 4), SUBSTR(mgclear_time, 6, 2); + +------------------------------------------------------------------ +-- 5.5线上每年各月退款订单数量 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 5.6线上每年订单退款金额分布 + +-- xxxxxxxxxxxxxxxxx 识别不出准确订单数量 + +------------------------------------------------------------------ +-- 6.1线上每年净销售金额前100订单净销售金额 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 6.2线上每年净销售金额前100订单各省份净销售金额 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 6.3线上每年净销售金额前100订单各商品净销售金额 + +-- xxxxxxxxxxxxxxxxx + +------------------------------------------------------------------ +-- 7.1线上每年会员数量 +-- 19年有会员系统,所以很多没有注册门店 +SELECT brand, COUNT() FROM dwd_basic_all_vip_info_dd WHERE member_register_shop = '' GROUP BY brand ; +SELECT SUBSTR(member_register_time, 1, 4), COUNT() FROM dwd_basic_all_vip_info_dd WHERE member_register_shop = '' AND brand = 'BES' GROUP BY SUBSTR(member_register_time, 1, 4); + +-- 账单没有 +SELECT * FROM custom_online_sale_bill_local WHERE store_code IN (SELECT member_register_shop FROM dwd_basic_all_vip_info_dd); +-- 3345273 +SELECT * FROM custom_online_sale_order_local WHERE store_code IN (SELECT member_register_shop FROM dwd_basic_all_vip_info_dd); +-- 30条会员数据没有注册时间 +SELECT COUNT(DISTINCT t2.member_id) +FROM (SELECT DISTINCT store_code FROM custom_online_sale_order_local WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30') t1 +INNER JOIN dwd_basic_all_vip_info_dd t2 ON t1.store_code = t2.member_register_shop +WHERE t2.member_register_time = ''; + +-- 每年底数量 +SELECT + COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 4) < '2023' THEN t2.member_id END) AS count_2022, + COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 4) < '2024' THEN t2.member_id END) AS count_2023, + COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 4) < '2025' THEN t2.member_id END) AS count_2024, + COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 10) <= '2025-06-30' THEN t2.member_id END) AS count_20250630 +FROM (SELECT DISTINCT store_code FROM custom_online_sale_order_local WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30') t1 +INNER JOIN dwd_basic_all_vip_info_dd t2 ON t1.store_code = t2.member_register_shop +WHERE t2.member_register_time <> ''; + +------------------------------------------------------------------ +-- 7.2线上每年活跃会员数量及其占比 +-- 1363725条积分变动数据变动时间为空 +SELECT COUNT() FROM dwd_basic_all_vip_point_dd WHERE change_time = ''; +-- +--SELECT t2.* +--FROM (SELECT DISTINCT store_code FROM custom_online_sale_order_local WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30') t1 +--INNER JOIN dwd_basic_all_vip_info_dd t2 ON t1.store_code = t2.member_register_shop +--WHERE SUBSTR(t2.member_register_time, 1, 10) <= '2025-06-30'; + +-- 订单号关联不到积分数据 +SELECT * FROM custom_online_sale_order_local WHERE platform_order_no IN (SELECT bill_no FROM dwd_basic_all_vip_point_dd WHERE bill_no <> ''); +SELECT * FROM custom_online_sale_order_local WHERE system_order_no IN (SELECT bill_no FROM dwd_basic_all_vip_point_dd WHERE bill_no <> ''); + +SELECT * FROM custom_online_sale_order_local t1 INNER JOIN dwd_basic_all_vip_point_dd t2 ON t1.system_order_no = t2.bill_no; +SELECT * FROM custom_online_sale_order_local t1 INNER JOIN dwd_basic_all_vip_point_dd t2 ON t1.platform_order_no = t2.bill_no; + + +SELECT + a.perYear "年份", + a.member_count AS "活跃会员数量", + ROUND(a.member_count / + CASE + WHEN a.perYear = '2022' THEN b.count_2022 + WHEN a.perYear = '2023' THEN b.count_2023 + WHEN a.perYear = '2024' THEN b.count_2024 + WHEN a.perYear = '2025' THEN b.count_20250630 + END + , 4) AS "活跃会员占比" +FROM (SELECT SUBSTR(change_time, 1, 4) AS perYear, COUNT(DISTINCT member_id) AS member_count +FROM dwd_basic_all_vip_point_dd +WHERE member_id IN (SELECT DISTINCT member_id + FROM (SELECT DISTINCT store_code FROM custom_online_sale_order_local WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30') t1 + INNER JOIN dwd_basic_all_vip_info_dd t2 ON t1.store_code = t2.member_register_shop + WHERE t2.member_register_time <> '') +AND point_change > '0' AND change_time <> '' AND SUBSTR(change_time, 1, 10) >= '2022-01-01' AND SUBSTR(change_time, 1, 10) <= '2025-06-30' +GROUP BY SUBSTR(change_time, 1, 4) +) a, ( + SELECT + COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 4) < '2023' THEN t2.member_id END) AS count_2022, + COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 4) < '2024' THEN t2.member_id END) AS count_2023, + COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 4) < '2025' THEN t2.member_id END) AS count_2024, + COUNT(DISTINCT CASE WHEN SUBSTR(t2.member_register_time, 1, 10) <= '2025-06-30' THEN t2.member_id END) AS count_20250630 + FROM (SELECT DISTINCT store_code FROM custom_online_sale_order_local WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30') t1 + INNER JOIN dwd_basic_all_vip_info_dd t2 ON t1.store_code = t2.member_register_shop + WHERE t2.member_register_time <> '' +) b +ORDER BY a.perYear; + +------------------------------------------------------------------ +-- 7.3线上每年会员新增、注销数量 + + +-- 每年新增 +SELECT SUBSTR(t2.member_register_time, 1, 4), COUNT(DISTINCT t2.member_id) +FROM (SELECT DISTINCT store_code FROM custom_online_sale_order_local WHERE mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) <= '2025-06-30') t1 +INNER JOIN dwd_basic_all_vip_info_dd t2 ON t1.store_code = t2.member_register_shop +WHERE t2.member_register_time <> '' AND SUBSTR(t2.member_register_time, 1, 10) <= '2025-06-30' +GROUP BY SUBSTR(t2.member_register_time, 1, 4) +ORDER BY SUBSTR(t2.member_register_time, 1, 4); + +-- 注销没数据 + +------------------------------------------------------------------ +-- 7.4线上每年会员积分新增、消耗、清零数量 +-- 积分类型 +SELECT DISTINCT change_kind FROM dwd_basic_all_vip_point_dd; + +------------------------------------------------------------------ \ No newline at end of file diff --git a/数据分析/v3/验证.sql b/数据分析/v3/验证.sql new file mode 100644 index 0000000..4be7415 --- /dev/null +++ b/数据分析/v3/验证.sql @@ -0,0 +1,633 @@ +-- 统计系统、品牌、店铺 +SELECT DISTINCT source_system FROM dwd_trade_hkaudit_ecommerce_sale_mt; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE source_system = 'PF_ESP'; +SELECT SUBSTR(order_date, 1, 4), brand_code FROM dwd_trade_hkaudit_ecommerce_sale_mt + GROUP BY SUBSTR(order_date, 1, 4), brand_code ORDER BY SUBSTR(order_date, 1, 4); + +SELECT SUBSTR(order_date, 1, 4), store_code, MAX(store_name) FROM dwd_trade_hkaudit_ecommerce_sale_mt + GROUP BY SUBSTR(order_date, 1, 4), store_code ORDER BY SUBSTR(order_date, 1, 4); + +SELECT COUNT(DISTINCT store_code) FROM dwd_trade_hkaudit_ecommerce_sale_mt; + +-- 赠品有金额 +SELECT * +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE is_gift = '是' AND goods_amt > 0; + +-- 钱货两清时间24年,支付25年 +SELECT * +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE platform_order_no = '3725079539738352640'; +SELECT source_system, brand_code , order_time , system_order_no , store_code , store_name , manual_order , is_swap_order , platform_order_no , + pay_time , deliver_time , mgclear_time , main_logistic_bill +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE mgclear_time < order_time AND manual_order <> '是'; +SELECT * +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE mgclear_time < order_time AND manual_order = '是' AND mgclear_time <> ''; +SELECT * +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE mgclear_time = '' AND manual_order = '是'; + +SELECT store_code , MAX(store_name), sum(goods_amt) +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE SUBSTR(mgclear_time, 1, 4) < '2022' AND brand_code NOT IN ('SBZ', 'YEO') AND order_date < '2025-07-01' AND mgclear_time <> '' +GROUP BY store_code; + +SELECT COUNT() +FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE mgclear_time = '' AND order_date < '2025-07-01'; +SELECT brand_code, COUNT() +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE mgclear_time = '' +GROUP BY brand_code ; +SELECT store_code, SUBSTR(order_date, 1, 7), MAX(store_name), COUNT() +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE mgclear_time = '' +GROUP BY store_code, SUBSTR(order_date, 1, 7); + +SELECT source_system, brand_code, COUNT() +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE mgclear_time <> '' AND mgclear_time < order_time +GROUP BY source_system, brand_code; + +SELECT DISTINCT store_code +FROM custom_online_sale_order_local +WHERE mgclear_time <> '' AND mgclear_time < order_time +AND source_system = 'SBZE3'; +SELECT * +FROM custom_online_sale_order_local +WHERE mgclear_time <> '' AND mgclear_time < order_time +AND source_system = 'SBZE3' AND store_code = 'SW00067'; + +SELECT source_system, brand_code +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE mgclear_time < order_time AND manual_order <> '是' +GROUP BY source_system, brand_code; + + +SELECT brand, COUNT() FROM dwd_basic_all_vip_info_dd WHERE member_register_shop = '' GROUP BY brand ; +SELECT SUBSTR(member_register_time, 1, 4), COUNT() FROM dwd_basic_all_vip_info_dd WHERE member_register_shop = '' AND brand = 'BES' GROUP BY SUBSTR(member_register_time, 1, 4); + + +-- 所有品牌 +SELECT DISTINCT brand_code +FROM dwd_trade_hkaudit_ecommerce_sale_mt; + +-- 斯博兹 京东奥莱店铺 +SELECT store_code, MAX(store_name), SUM(goods_amt) +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE store_name IN ('京东奥莱官方旗舰店', '京东奥莱秒送店') + AND order_date >= '2024-01-01' AND order_date < '2025-07-01' +GROUP BY store_code; + +SELECT store_code, MAX(store_name), SUM(goods_amt) +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE brand_code = 'SBZ' + AND order_date >= '2024-01-01' AND order_date < '2025-07-01' +GROUP BY store_code ORDER BY SUM(goods_amt) DESC; + + +-- 斯博兹按年月排(下单时间) +SELECT SUBSTR(order_date, 1, 7), SUM(goods_amt) +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE brand_code = 'SBZ' +GROUP BY SUBSTR(order_date, 1, 7) +ORDER BY SUM(goods_amt); + +-- 斯博兹按年月排(钱货两清时间) +SELECT SUBSTR(mgclear_time, 1, 7), SUM(goods_amt) +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE brand_code = 'SBZ' +GROUP BY SUBSTR(mgclear_time, 1, 7) +ORDER BY SUM(goods_amt); + +-- 各品牌钱货两清时间为空的按照下单时间统计 +SELECT brand_code, SUBSTR(order_time, 1, 7), COUNT() +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE mgclear_time IS NULL OR mgclear_time = '' +GROUP BY brand_code, SUBSTR(order_time, 1, 7); + +-- 订单结算金额为负的没有 +-- 订单商品结算金额为负 -1102996285.66 +SELECT SUM(goods_amt) +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE goods_amt < 0; +-- 具体数据 +SELECT * +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE goods_amt < 0 LIMIT 1000; +-- 按照店铺分 +SELECT store_code, MAX(store_name), SUM(goods_amt) +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE goods_amt < 0 +GROUP BY store_code; + +-- 店铺编码对应多个名称 176家存在 +SELECT store_code, COUNT(DISTINCT store_name) +FROM dwd_trade_hkaudit_ecommerce_sale_mt +GROUP BY store_code HAVING COUNT(DISTINCT store_name) > 1; + +-- 线上销售均摊金额之和是否等于订单结算金额 +SELECT a.platform_order_no, a.order_amount, b.goods_amount FROM +(SELECT platform_order_no, MAX(order_settle_amt) AS order_amount +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE platform_order_no <> '' AND platform_order_no IS NOT NULL +GROUP BY platform_order_no) a +LEFT JOIN (SELECT platform_order_no, SUM(goods_amt) AS goods_amount +FROM dwd_trade_hkaudit_ecommerce_sale_mt +GROUP BY platform_order_no) b ON a.platform_order_no = b.platform_order_no +WHERE a.order_amount <> b.goods_amount; + +SELECT * +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE platform_order_no = '284444210101'; + +-- 换货单查询 +SELECT * +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE is_swap_order <> '否'; +-- 为空的 4912136 +SELECT COUNT() +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE is_swap_order = ''; + +-- 下单和发货间隔 +-- 发货时间为空的 手工单 41 总共 14193791 +SELECT + COUNT() +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE manual_order = '是' AND deliver_time = ''; +SELECT + COUNT() +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE deliver_time = ''; +-- 发货时间为空的数据查询 +SELECT + store_code, MAX(store_name), COUNT() +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE deliver_time = '' AND SUBSTR(order_date, 1, 4) = '2024' +AND store_name NOT LIKE '%唯品会%' AND store_name NOT LIKE '%京东自营%' AND brand_code <> 'SBZ' +GROUP BY store_code ; +-- 按店铺各月发货时间为空分布 +SELECT + store_code, MAX(store_name), SUBSTR(order_date, 1, 7), COUNT() +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE deliver_time = '' AND store_name NOT LIKE '%唯品会%' +GROUP BY store_code, SUBSTR(order_date, 1, 7); + +SELECT + store_code, MAX(store_name), source_platform , COUNT(), COUNT(DISTINCT platform_order_no), COUNT(DISTINCT system_order_no) +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE deliver_time = '' AND store_name NOT LIKE '%唯品会%' +GROUP BY store_code, source_platform ; + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE store_code = 'SF00242'; + +SELECT + * +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE deliver_time = '' AND SUBSTR(order_date, 1, 4) = '2024' AND store_code IN ('S000001'); +-- 发货间隔 3天以上 44507 >7 30796 > 15 23021 >30 20540 +SELECT + COUNT() +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE manual_order = '是' AND deliver_time <> '' AND dateDiff('day', toDateTime(order_time), toDateTime(deliver_time)) > 30; +SELECT * +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE manual_order = '是' AND deliver_time <> '' AND dateDiff('day', toDateTime(order_time), toDateTime(deliver_time)) > 30; +SELECT AVG(dateDiff('day', toDateTime(order_time), toDateTime(deliver_time))) +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE manual_order <> '是' AND deliver_time <> ''; + +-- 粗略计算销售金额 +SELECT + SUM(goods_amt) +FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE mgclear_time <> '' AND YEAR(toDate(mgclear_time)) = '2024'; +SELECT + SUM(return_goods_amt) +FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE mgclear_time <> '' AND YEAR(toDate(mgclear_time)) = '2024'; +SELECT + SUM(special_barcode_amt) +FROM dwd_trade_hkaudit_ecommerce_sale_change_mt WHERE mgclear_time <> '' AND YEAR(toDate(mgclear_time)) = '2024'; + +-- 每个店铺每年收入情况 +-- 不同店铺相同订单号 802 +SELECT platform_order_no +FROM dwd_trade_hkaudit_ecommerce_sale_mt +GROUP BY platform_order_no HAVING COUNT(DISTINCT store_code) > 1; + +SELECT * +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE platform_order_no = '4155933925640151503'; +-- 带入店铺算 +SELECT a.perYear, a.store_code, MAX(a.store_name), SUM(a.sale_amount), SUM(b.sale_refund_amount), SUM(c.sale_change_amount) +FROM (SELECT + SUBSTR(order_date, 1, 4) AS perYear, + store_code, + MAX(store_name) AS store_name, + platform_order_no, + SUM(goods_amt) AS sale_amount +FROM dwd_trade_hkaudit_ecommerce_sale_mt +--WHERE SUBSTR(order_date, 1, 4) = '2024' +GROUP BY SUBSTR(order_date, 1, 4), store_code, platform_order_no) a +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(return_goods_amt) AS sale_refund_amount + FROM dwd_trade_hkaudit_ecommerce_sale_return_mt + GROUP BY store_code, platform_order_no +) b ON a.store_code = b.store_code AND a.platform_order_no = b.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(special_barcode_amt) AS sale_change_amount + FROM dwd_trade_hkaudit_ecommerce_sale_change_mt + GROUP BY store_code, platform_order_no +) c ON a.store_code = c.store_code AND a.platform_order_no = c.platform_order_no +GROUP BY a.perYear, a.store_code; + +SELECT a.perYear, a.store_code, MAX(a.store_name), SUM(a.sale_amount), SUM(b.sale_refund_amount), SUM(c.sale_change_amount) +FROM (SELECT + SUBSTR(order_date, 1, 4) AS perYear, + store_code, + MAX(store_name) AS store_name, + platform_order_no, + SUM(goods_amt) AS sale_amount +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE order_date >= '2025-01-01' AND order_date < '2025-07-01' +GROUP BY SUBSTR(order_date, 1, 4), store_code, platform_order_no) a +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(return_goods_amt) AS sale_refund_amount + FROM dwd_trade_hkaudit_ecommerce_sale_return_mt + GROUP BY store_code, platform_order_no +) b ON a.store_code = b.store_code AND a.platform_order_no = b.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(special_barcode_amt) AS sale_change_amount + FROM dwd_trade_hkaudit_ecommerce_sale_change_mt + GROUP BY store_code, platform_order_no +) c ON a.store_code = c.store_code AND a.platform_order_no = c.platform_order_no +GROUP BY a.perYear, a.store_code; + +SELECT a.perYear, a.store_code, MAX(a.store_name), SUM(a.sale_amount), SUM(b.sale_refund_amount), SUM(c.sale_change_amount) +FROM (SELECT + SUBSTR(order_date, 1, 4) AS perYear, + store_code, + MAX(store_name) AS store_name, + platform_order_no, + SUM(goods_amt) AS sale_amount +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE SUBSTR(order_date, 1, 4) = '2024' AND store_code = 'DHF3' +GROUP BY SUBSTR(order_date, 1, 4), store_code, platform_order_no) a +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(return_goods_amt) AS sale_refund_amount + FROM dwd_trade_hkaudit_ecommerce_sale_return_mt + GROUP BY store_code, platform_order_no +) b ON a.store_code = b.store_code AND a.platform_order_no = b.platform_order_no +LEFT JOIN ( + SELECT store_code, platform_order_no, SUM(special_barcode_amt) AS sale_change_amount + FROM dwd_trade_hkaudit_ecommerce_sale_change_mt + GROUP BY store_code, platform_order_no +) c ON a.store_code = c.store_code AND a.platform_order_no = c.platform_order_no +GROUP BY a.perYear, a.store_code; + +-- 发货调整数量不为0的 +SELECT * +FROM dwd_trade_hkaudit_ecommerce_sale_change_mt +WHERE goods_qty <> 0 AND SUBSTR(create_date, 1, 4) = '2023'; + +SELECT * +FROM dwd_trade_hkaudit_ecommerce_sale_change_mt +WHERE system_order_no = 'BS513100011188'; + +-- 销售有负数 退销有正数 +SELECT source_system, COUNT() FROM +dwd_trade_hkaudit_ecommerce_sale_mt WHERE goods_amt < 0 +GROUP BY source_system ; +SELECT MAX(source_system) , store_code, MAX(store_name), COUNT() FROM +dwd_trade_hkaudit_ecommerce_sale_mt WHERE goods_amt < 0 +GROUP BY store_code ; + +SELECT COUNT() +FROM dwd_trade_hkaudit_ecommerce_sale_return_mt +WHERE return_goods_amt > 0; + +SELECT * +FROM dwd_trade_hkaudit_ecommerce_sale_return_mt +WHERE system_order_no = 'BS210100000263'; + +SELECT source_system, COUNT() FROM +dwd_trade_hkaudit_ecommerce_sale_mt WHERE system_order_no LIKE 'FHTZ%' +GROUP BY source_system; + +SELECT DISTINCT store_name +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE source_system = 'PF_ECP'; + +-- 订单重复行计算 140579734 +SELECT COUNT(DISTINCT *) FROM dwd_trade_hkaudit_ecommerce_sale_mt; +-- 145002782 +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt; +-- 取数查看 +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE system_order_no IN ( + SELECT system_order_no FROM dwd_trade_hkaudit_ecommerce_sale_mt + WHERE system_order_no IN ( + SELECT system_order_no + FROM dwd_trade_hkaudit_ecommerce_sale_mt + WHERE source_system = 'E3PLUS_NEW' + GROUP BY system_order_no, platform_order_no, goods_barcode, goods_amt + HAVING COUNT() > 1 + ) + GROUP BY system_order_no HAVING MAX(order_settle_amt) < SUM(goods_amt) +) ORDER BY system_order_no DESC; + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE system_order_no = 'BS4A0300002724'; + +-- 退销平台单号查看(是否和销售单号关联) +SELECT SUM(platform_order_num) +FROM (SELECT store_code, COUNT(DISTINCT platform_order_no) AS platform_order_num +FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE SUBSTR(create_time, 1, 10) >= '2025-01-01' AND SUBSTR(create_time, 1, 10) < '2025-07-01' +GROUP BY store_code); + +SELECT SUM(platform_order_num) +FROM ( + SELECT store_code, COUNT(DISTINCT platform_order_no) AS platform_order_num + FROM (SELECT * + FROM dwd_trade_hkaudit_ecommerce_sale_return_mt + WHERE SUBSTR(create_time, 1, 10) >= '2025-01-01' AND SUBSTR(create_time, 1, 10) < '2025-03-01' ) a + INNER JOIN (SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE SUBSTR(order_date, 1, 4) = '2025') b ON a.store_code = b.store_code AND a.platform_order_no = b.platform_order_no + GROUP BY store_code +); + +SELECT source_platform, store_code, MAX(store_name), SUM(goods_amt) +FROM dwd_trade_hkaudit_ecommerce_sale_mt +GROUP BY source_platform, store_code ORDER BY SUM(goods_amt) DESC; + +-- 账单:BS3B1900003767 BS392000041139 +SELECT * FROM dwd_trade_hkaudit_ecommerce_account_mt dtheam WHERE bill_source = '1' AND SUBSTR(transaction_date, 1, 4) = '2024' AND matching_status = '1'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_account_mt dtheam WHERE matching_no = 'BS3923R0002529'; + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt dthesm WHERE platform_order_no LIKE '%231119-419587705691524%'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt dthesm WHERE system_order_no = 'BS392000041139'; + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_return_mt dthesrm WHERE platform_order_no LIKE '%,%'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_return_mt dthesrm WHERE system_order_no = 'BS3923R0002529'; + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_change_mt dthescm WHERE platform_order_no IN ('231119-071838012891524,231119-419587705691524'); + +-- 18,615,790 +SELECT COUNT(DISTINCT system_order_no) FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE store_code = 'DHF3' AND mgclear_time <> '' AND is_gift <> '是'; +-- 14,621,773 14,641,473 +SELECT COUNT(DISTINCT matching_no) FROM dwd_trade_hkaudit_ecommerce_account_mt WHERE matching_no IN ( + SELECT DISTINCT system_order_no FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE store_code = 'DHF3' AND mgclear_time <> '' +); +-- +SELECT COUNT(DISTINCT system_order_no) FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE store_code = 'DHF3' AND mgclear_time <> '' AND is_gift <> '是' AND system_order_no IN ( + SELECT DISTINCT matching_no FROM dwd_trade_hkaudit_ecommerce_account_mt +); + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE store_code = 'DHF3' AND mgclear_time <> '' AND is_gift <> '是' AND system_order_no NOT IN ( + SELECT DISTINCT matching_no FROM dwd_trade_hkaudit_ecommerce_account_mt +); +-- TM490900000511 +SELECT * FROM dwd_trade_hkaudit_ecommerce_account_mt WHERE matching_no = 'TM461000000493'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_account_mt WHERE transaction_no = '2185819176131246881'; + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE platform_order_no LIKE '%4037358494865750517%'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE system_order_no = 'TM461000000493'; + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE association_order_no = 'TM461000000493'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE platform_order_no LIKE '%4037358494865750517%'; + +SELECT * FROM dwd_trade_hkaudit_ecommerce_account_mt dtheam WHERE transaction_no = '2520559669307517693'; + +-- 两边已两清的,账单应收的 +SELECT + SUM(a.sale_amount), + SUM(b.sale_refund_amount), + SUM(c.amount_sum), + SUM(d.order_freight_amt), + SUM(f.sale_change_amount) +FROM (SELECT + platform_order_no, + SUM(goods_amt) AS sale_amount + FROM custom_online_sale_local + WHERE store_code = 'DHF3' AND mgclear_time <> '' AND order_date = '2024-04-13' + GROUP BY platform_order_no) a +LEFT JOIN ( + SELECT platform_order_no, SUM(return_goods_amt) AS sale_refund_amount + FROM custom_online_sale_return_local + WHERE store_code = 'DHF3' + GROUP BY platform_order_no +) b ON a.platform_order_no = b.platform_order_no +LEFT JOIN ( + SELECT transaction_no, SUM(amount) AS amount_sum + FROM dwd_trade_hkaudit_ecommerce_account_mt + WHERE shop_code = 'DHF3' AND bill_type = '1' AND quits_status = '1' + GROUP BY transaction_no +) c ON a.platform_order_no = c.transaction_no +LEFT JOIN ( + SELECT platform_order_no, SUM(order_freight_amt_t) AS order_freight_amt + FROM (SELECT + system_order_no, + platform_order_no, + MAX(order_freight_amt) AS order_freight_amt_t + FROM custom_online_sale_local + WHERE store_code = 'DHF3' AND mgclear_time <> '' AND order_date = '2024-04-13' AND order_freight_amt > 0 + GROUP BY system_order_no, platform_order_no + ) GROUP BY platform_order_no +) d ON a.platform_order_no = d.platform_order_no +LEFT JOIN ( + SELECT platform_order_no, SUM(special_barcode_amt) AS sale_change_amount + FROM custom_online_sale_change_local + WHERE store_code = 'DHF3' + GROUP BY platform_order_no +) f ON a.platform_order_no = f.platform_order_no; + +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE order_date < '2022-01-01'; + +SELECT source_system, COUNT(DISTINCT system_order_no) FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE order_date < '2022-01-01' GROUP BY source_system; + +SELECT brand_code, COUNT(DISTINCT system_order_no) FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE order_date < '2022-01-01' AND source_system = 'E3PLUS_NEW2' GROUP BY brand_code; + +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE source_system = 'EC_HIS' AND store_code = 'DHF3'; + +SELECT brand_code, SUBSTR(create_date, 1, 7), COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_return_mt dthesrm WHERE platform_order_no IN ( +SELECT platform_order_no FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE mgclear_time <> '' GROUP BY platform_order_no) +AND mgclear_time = '' AND brand_code = 'HLA' GROUP BY brand_code, SUBSTR(create_date, 1, 7) ; + +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE source_system = 'SBZ' AND platform_order_no IN ( + SELECT platform_order_no FROM dwd_trade_hkaudit_ecommerce_sale_mt + WHERE source_system = 'SBZ_HIS' +); + + +-- 结算不等于商品总额的 +SELECT * FROM +(SELECT store_code, system_order_no, MAX(order_settle_amt) AS order_settle_amt, MAX(order_freight_amt) AS order_freight_amt +FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE source_system NOT LIKE 'EC%' AND store_name NOT LIKE '%唯品会%' AND store_name NOT LIKE '%京东自营%' AND store_name NOT LIKE '%英式%' +GROUP BY store_code, system_order_no +) a LEFT JOIN ( + SELECT store_code, system_order_no, SUM(goods_amt) AS goods_amt + FROM dwd_trade_hkaudit_ecommerce_sale_mt + WHERE source_system NOT LIKE 'EC%' AND store_name NOT LIKE '%唯品会%' AND store_name NOT LIKE '%京东自营%' AND store_name NOT LIKE '%英式%' + GROUP BY store_code, system_order_no +) b ON a.store_code = b.store_code AND a.system_order_no = b.system_order_no +WHERE a.order_settle_amt <> b.goods_amt ; + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE system_order_no = '3201016386813'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE system_order_no = '3203069261697'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE system_order_no = 'BS282100018218'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE platform_order_no LIKE '%235316176071%'; + +SELECT system_order_no FROM dwd_trade_hkaudit_ecommerce_sale_mt GROUP BY system_order_no HAVING MAX(order_settle_amt) <> 0 AND SUM(goods_amt) = 0; + + + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE platform_order_no IN +(SELECT platform_order_no FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE is_swap_order = '是' AND store_name LIKE '%京东%' AND brand_code <> 'SBZ') +ORDER BY platform_order_no; + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt dthesm WHERE platform_order_no = '213591262551'; + + +SELECT DISTINCT store_code , store_name FROM dim_hkaudit_store_mt WHERE brand_code = 'HLA' AND store_name LIKE '%京东%' ; + +SELECT DISTINCT store_code, store_name FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE store_code IN ( +SELECT DISTINCT store_code FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE goods_amt < 0 AND store_name NOT LIKE '%唯品会%' AND store_name NOT LIKE '%京东自营%') +ORDER BY platform_order_no ; + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE store_code = 'DYQ2'; + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE goods_amt < 0 AND source_system LIKE '%E3%'; + + +SELECT source_system, COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE platform_order_no = '' GROUP BY source_system; + +PF_ECP_NEW2 5190094 +PF_OCP_NEW 541202 +PF_ESP_NEW 553009 +SBZE3 7648558 +PF_YEP_NEW 1079740 + +PF_ECP_NEW2 5190094 +SBZE3 5093236 +PF_OCP_NEW 541202 +PF_YEP_NEW 1079740 +PF_ESP_NEW 553009 + +SELECT SUBSTR(system_order_no, 1, 7), COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE source_system = 'SBZE3' AND platform_order_no = '' GROUP BY SUBSTR(system_order_no, 1, 7); + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE brand_code = 'SBZ' AND platform_order_no = '' AND system_order_no LIKE '%XSDD%'; + + +SELECT store_code FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE source_system <> 'EC_HIS_NEW' GROUP BY store_code HAVING COUNT(DISTINCT source_system) > 1 ; +SELECT store_code, MAX(store_name), arrayStringConcat(groupArray(distinct source_system), ',') AS source_system_m FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE source_system LIKE 'PF%' +GROUP BY store_code HAVING COUNT(DISTINCT source_system) > 1 ; + +SELECT DISTINCT source_system FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE source_system LIKE 'PF%' AND store_code = 'DYO9'; + +SELECT DISTINCT brand_code FROM dwd_trade_hkaudit_ecommerce_sale_mt; + + +SELECT DISTINCT source_system FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE store_code = 'DYE2'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE store_code = 'DYE2'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE platform_order_no = '22011819700880'; + + +SELECT source_system, manual_order, COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE mgclear_time <> '' AND mgclear_time < order_time GROUP BY source_system, manual_order ; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE mgclear_time <> '' AND mgclear_time < order_time AND source_system = 'PF_ESP_NEW'; + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE mgclear_time <> '' AND mgclear_time < order_time AND source_system IN ('E3PLUS_NEW2','EC_HIS_NEW') + AND dateDiff('day', toDateTime(mgclear_time), toDateTime(order_time)) > 1; + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE deliver_time < order_time AND source_system IN ('E3PLUS_NEW2','EC_HIS_NEW') + AND dateDiff('day', toDateTime(deliver_time), toDateTime(order_time)) > 1; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE deliver_time < order_time AND source_system IN ('E3PLUS_NEW2','EC_HIS_NEW') AND manual_order = ''; + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE SUBSTR(order_date, 1, 4) = '2121'; + +-- 346691892 , 246212129 +SELECT * FROM dwd_basic_all_vip_info_dd dbavid WHERE member_register_shop = ''; +SELECT * FROM dwd_basic_all_vip_info_dd WHERE member_id IN (SELECT member_id FROM dwd_basic_all_vip_info_dd GROUP BY member_id HAVING COUNT() > 1) ORDER BY member_id ; + +SELECT * FROM dwd_basic_all_vip_info_dd WHERE member_register_shop = '' AND brand = 'HLA' ORDER BY member_register_time desc; + +SELECT bill_no, COUNT() FROM dwd_basic_all_vip_point_dd dbavid GROUP BY bill_no HAVING COUNT() > 1 order by COUNT() DESC; + +SELECT * FROM dwd_basic_all_vip_point_dd dbavid WHERE bill_no = '01H3HP2311120001'; +SELECT * FROM dwd_basic_all_vip_point_dd dbavid WHERE bill_no = '01H3HP2311120001'; +SELECT * FROM dwd_basic_all_vip_point_dd dbavid WHERE bill_no LIKE 'BS%'; + +SELECT DISTINCT substr(system_order_no, 1, 2) FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE source_system = 'SBZE3'; +SELECT DISTINCT substr(system_order_no, 1, 4) FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE source_system = 'SBZE3' AND substr(system_order_no, 1, 2) IN ('XS', 'JX'); + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE substr(system_order_no, 1, 5) = 'XSJSD'; + + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE platform_order_no = ''; + + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE source_system = 'SBZE3' AND create_date = '2025-03-28' AND return_goods_code = 'JP98143.5'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE source_system = 'SBZE3' AND order_date = '2025-03-28' AND goods_qty < 0; + +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_return_mt WHERE source_system = 'SBZE3' AND SUBSTR(system_order_no, 1, 5) = 'XSJSD' AND return_goods_qty < 0; + +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt dthesm WHERE SUBSTR(order_date, 1, 4) > '2100'; +SELECT * FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE system_order_no = '12012533354151'; + +SELECT COUNT() FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE source_system LIKE 'PF%' AND SUBSTR(order_time, 1, 4) < '2022'; + +SELECT DISTINCT store_name FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE store_name LIKE '%微商城%'; + +-- 闭店还有单子产生吗 +-- 相差时间间隔 + + +SELECT store_code, brand_code, COUNT(DISTINCT system_order_no), SUM(order_settle_amt_t) +FROM (SELECT store_code, brand_code, system_order_no, MAX(order_settle_amt) AS order_settle_amt_t FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE source_system LIKE 'E3PLUS%' AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) < '2025-07-01' +GROUP BY store_code, brand_code, system_order_no +) GROUP BY store_code, brand_code +ORDER BY brand_code, store_code; + +SELECT store_code, brand_code, COUNT(DISTINCT system_order_no), SUM(order_settle_amt_t) +FROM (SELECT store_code, brand_code, system_order_no, MAX(order_settle_amt) AS order_settle_amt_t FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE source_system LIKE 'E3PLUS%' AND SUBSTR(order_time, 1, 10) < '2025-07-01' +GROUP BY store_code, brand_code, system_order_no +) GROUP BY store_code, brand_code +ORDER BY brand_code, store_code; + +SELECT DISTINCT system_order_no FROM dwd_trade_hkaudit_ecommerce_sale_mt WHERE store_code = 'DHZQ' AND source_system LIKE 'E3PLUS%' AND SUBSTR(order_time, 1, 10) < '2025-07-01'; + +SELECT store_code, brand_code, COUNT(DISTINCT system_order_no), SUM(return_goods_amt_t) +FROM (SELECT store_code, brand_code, system_order_no, SUM(return_goods_amt) AS return_goods_amt_t FROM dwd_trade_hkaudit_ecommerce_sale_return_mt +WHERE source_system LIKE 'E3PLUS%' AND SUBSTR(create_time, 1, 10) < '2025-07-01' +GROUP BY store_code, brand_code, system_order_no +) GROUP BY store_code, brand_code +ORDER BY brand_code, store_code; + +-- EC +SELECT store_code, brand_code, COUNT(DISTINCT system_order_no), SUM(order_settle_amt_t) +FROM (SELECT store_code, brand_code, system_order_no, MAX(order_settle_amt) AS order_settle_amt_t FROM dwd_trade_hkaudit_ecommerce_sale_mt +WHERE source_system LIKE 'EC%' AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) < '2025-07-01' +GROUP BY store_code, brand_code, system_order_no +) GROUP BY store_code, brand_code +ORDER BY brand_code, store_code; + +SELECT store_code, brand_code, COUNT(DISTINCT system_order_no), SUM(return_goods_amt_t) +FROM (SELECT store_code, brand_code, system_order_no, SUM(return_goods_amt) AS return_goods_amt_t FROM dwd_trade_hkaudit_ecommerce_sale_return_mt +WHERE source_system LIKE 'EC%' AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) < '2025-07-01' +GROUP BY store_code, brand_code, system_order_no +) GROUP BY store_code, brand_code +ORDER BY brand_code, store_code; + +SELECT store_code, brand_code, COUNT(DISTINCT system_order_no), SUM(special_barcode_amt_t) +FROM (SELECT store_code, brand_code, system_order_no, SUM(special_barcode_amt) AS special_barcode_amt_t FROM dwd_trade_hkaudit_ecommerce_sale_change_mt +WHERE source_system LIKE 'EC%%' AND mgclear_time <> '' AND SUBSTR(mgclear_time, 1, 10) >= '2022-01-01' AND SUBSTR(mgclear_time, 1, 10) < '2025-07-01' +GROUP BY store_code, brand_code, system_order_no +) GROUP BY store_code, brand_code +ORDER BY brand_code, store_code; + diff --git a/需求/取数需求-IT.xlsx b/需求/取数需求-IT.xlsx index 3154c9f58c6a9a4eb26a30b8dc9597349674a621..480d321dfee962068f051518510749f9dd97f9c9 100644 GIT binary patch literal 14550 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 V8S!s@by$GOn;)pZ_1FP`{|EIqahd=C literal 10498 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