{"id":7291,"date":"2024-11-14T11:51:26","date_gmt":"2024-11-14T03:51:26","guid":{"rendered":"https:\/\/fwq.ai\/blog\/7291\/"},"modified":"2024-11-14T11:51:26","modified_gmt":"2024-11-14T03:51:26","slug":"%e5%a6%82%e4%bd%95%e4%bc%98%e5%8c%96-mysql-%e5%95%86%e5%93%81%e9%94%80%e5%94%ae%e6%83%85%e5%86%b5%e7%bb%9f%e8%ae%a1%e6%9f%a5%e8%af%a2%e6%80%a7%e8%83%bd%ef%bc%8c%e4%bd%bf%e5%85%b6%e5%9c%a8%e6%9f%a5","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/7291\/","title":{"rendered":"\u5982\u4f55\u4f18\u5316 MySQL \u5546\u54c1\u9500\u552e\u60c5\u51b5\u7edf\u8ba1\u67e5\u8be2\u6027\u80fd\uff0c\u4f7f\u5176\u5728\u67e5\u8be2\u65f6\u95f4\u8303\u56f4\u6269\u5927\u65f6\u4e5f\u80fd\u4fdd\u6301\u5feb\u901f\u54cd\u5e94\uff1f"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/img.php.cn\/upload\/article\/001\/246\/273\/173068634075641.jpg\" class=\"aligncenter\" title=\"\u5982\u4f55\u4f18\u5316 MySQL \u5546\u54c1\u9500\u552e\u60c5\u51b5\u7edf\u8ba1\u67e5\u8be2\u6027\u80fd\uff0c\u4f7f\u5176\u5728\u67e5\u8be2\u65f6\u95f4\u8303\u56f4\u6269\u5927\u65f6\u4e5f\u80fd\u4fdd\u6301\u5feb\u901f\u54cd\u5e94\uff1f\u63d2\u56fe\" alt=\"\u5982\u4f55\u4f18\u5316 MySQL \u5546\u54c1\u9500\u552e\u60c5\u51b5\u7edf\u8ba1\u67e5\u8be2\u6027\u80fd\uff0c\u4f7f\u5176\u5728\u67e5\u8be2\u65f6\u95f4\u8303\u56f4\u6269\u5927\u65f6\u4e5f\u80fd\u4fdd\u6301\u5feb\u901f\u54cd\u5e94\uff1f\u63d2\u56fe\" \/><\/p>\n<p>\u4f18\u5316  \u5546\u54c1\u9500\u552e\u60c5\u51b5\u7edf\u8ba1\u67e5\u8be2\u6027\u80fd<\/p>\n<p><strong>\u95ee\u9898\u63cf\u8ff0\uff1a<\/strong><\/p>\n<p>\u9488\u5bf9\u5982\u4e0b sql \u67e5\u8be2\uff1a<\/p>\n<pre>select p.title,\n       count(o.id)                    as total,\n       coalesce(sum(o.amount), 0)     as success_amount,\ncoalesce(sum(success.amount), 0)     as failed_amount,\ncoalesce(sum(failed.amount), 0)     as total_amount,\ncount(success.id) as success_total,\ncount(failed.id) as failed_total\nfrom goods as g\n         left join orders as o on o.goods_id = g.id\n         left join orders as success on success.goods_id = g.id and success.status = 1 \n         left join orders as failed on failed.goods_id = g.id and failed.status = 2 \ngroup by `p`.`id`\norder by total desc\nlimit 10<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u5f53\u67e5\u8be2\u65f6\u95f4\u8303\u56f4\u8f83\u5c0f\u65f6\uff0c\u67e5\u8be2\u901f\u5ea6\u8f83\u5feb\uff0c\u4f46\u5f53\u67e5\u8be2\u8303\u56f4\u6269\u5927\u65f6\uff0c\u67e5\u8be2\u901f\u5ea6\u6781\u6162\u3002<\/p>\n<p><strong>\u4f18\u5316\u5efa\u8bae\uff1a<\/strong><\/p>\n<ol>\n<li> <strong>\u53d6\u6d88\u7d22\u5f15\uff1a<\/strong>\u5220\u9664 goods \u8868\u7684 create_time \u7d22\u5f15\u3002<\/li>\n<li> <strong>\u4fee\u6539\u7d22\u5f15\uff1a<\/strong>\u5c06 orders \u8868\u7684 goods_id \u7d22\u5f15\u4fee\u6539\u4e3a (create_time, goods_id, amount, status) \u8054\u5408\u7d22\u5f15\u3002<\/li>\n<li> <strong>\u91cd\u5199 sql\uff1a<\/strong>\u4f18\u5316\u540e\u7684 sql \u5982\u4e0b\uff1a<\/li>\n<\/ol>\n<pre>SELECT g.title,\n       COUNT(*)                       AS total,\n       COALESCE(SUM(o.amount), 0)     AS total_amount,\n       COALESCE(SUM(IF(o.status = 1, o.amount, 0)), 0)     AS success_amount,\n       COALESCE(SUM(IF(o.status = 2, o.amount, 0)), 0)     AS failed_amount,\n       COALESCE(SUM(o.status = 1), 0) AS success_total,\n       COALESCE(SUM(o.status = 2), 0) AS failed_total\n  FROM orders AS o\n  JOIN goods AS g ON g.id = o.goods_id\n WHERE o.create_time BETWEEN 'xxx' AND 'yyy'\n GROUP BY o.id\n ORDER BY total DESC\n LIMIT 10<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p><strong>\u6ce8\uff1a<\/strong><\/p>\n<p>\u7531\u4e8e\u6570\u636e\u91cf\u8f83\u5c0f\uff08\u5546\u54c1\u6570\u91cf\uff1a8000\uff0c\u8ba2\u5355\u6570\u91cf\uff1a100000\uff09\uff0c\u8003\u8651\u4f7f\u7528 sqlite \u4ee3\u66ff mysql \u8fdb\u884c\u67e5\u8be2\uff0c\u53ef\u4ee5\u83b7\u5f97\u8f83\u597d\u7684\u6027\u80fd\u3002<\/p>\n<p>\u4ee5\u4e0a\u5c31\u662f\u5982\u4f55\u4f18\u5316 MySQL \u5546\u54c1\u9500\u552e\u60c5\u51b5\u7edf\u8ba1\u67e5\u8be2\u6027\u80fd\uff0c\u4f7f\u5176\u5728\u67e5\u8be2\u65f6\u95f4\u8303\u56f4\u6269\u5927\u65f6\u4e5f\u80fd\u4fdd\u6301\u5feb\u901f\u54cd\u5e94\uff1f\u7684\u8be6\u7ec6\u5185\u5bb9\uff0c\u66f4\u591a\u8bf7\u5173\u6ce8\u7c73\u4e91\u7f51\u5176\u5b83\u76f8\u5173\u6587\u7ae0\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4f18\u5316 \u5546\u54c1\u9500\u552e\u60c5\u51b5\u7edf\u8ba1\u67e5\u8be2\u6027\u80fd \u95ee\u9898\u63cf\u8ff0\uff1a \u9488\u5bf9\u5982\u4e0b sql \u67e5\u8be2\uff1a select p.title, count(o.id) as total, coalesce(sum(o.amount), 0) as success_amount, coalesce(sum(success.amount), 0) as failed_amount, coalesce(sum(failed.amount), 0) as total_amount, count(success.id) as success_total, count(failed.id) as failed_total from goods as g left join orders as o on o.goods_id = g.id left join orders as success on success.goods_id = g.id and success.status = 1 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-7291","post","type-post","status-publish","format-standard","hentry","category-16"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/7291","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/comments?post=7291"}],"version-history":[{"count":0,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/7291\/revisions"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=7291"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=7291"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=7291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}