佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > mysql按照天統(tǒng)計(jì)報(bào)表當(dāng)天沒有數(shù)據(jù)填0的實(shí)現(xiàn)代碼

mysql按照天統(tǒng)計(jì)報(bào)表當(dāng)天沒有數(shù)據(jù)填0的實(shí)現(xiàn)代碼

熱門標(biāo)簽:AI電銷 Linux服務(wù)器 百度競(jìng)價(jià)排名 網(wǎng)站排名優(yōu)化 鐵路電話系統(tǒng) 服務(wù)外包 地方門戶網(wǎng)站 呼叫中心市場(chǎng)需求

1.問題復(fù)現(xiàn):

按照天數(shù)統(tǒng)計(jì)每天的總數(shù),如果其中有幾天沒有數(shù)據(jù),那么group by 返回會(huì)忽略那幾天,如何填充0?如下圖,統(tǒng)計(jì)的10-3~10-10 7天的數(shù)據(jù),其中只有8號(hào)和10號(hào)有數(shù)據(jù),這樣返回,數(shù)據(jù)只有2個(gè),不符合報(bào)表統(tǒng)計(jì)的需求。期望沒有值填0

2.換個(gè)思維:

我們用一組連續(xù)的天數(shù)作為左表然后left join 要查詢的數(shù)據(jù) 最后group by.:連續(xù)天數(shù)表 t1 left join 業(yè)務(wù)數(shù)據(jù)  t2 group by t1.day ,如下圖:

SELECT
 t1.`day`,
 COUNT(t2.user_id) payment_num
FROM
 (SELECT
 @cdate := DATE_ADD(@cdate, INTERVAL - 1 DAY) DAY
 FROM
 (SELECT
  @cdate := DATE_ADD('20171219', INTERVAL + 1 DAY)
 FROM
  order) t0
 LIMIT 7) t1
 LEFT JOIN
 (SELECT
  DATE(a.create_time) DAY,
  a.user_id
 FROM
  pay_payment a
  JOIN dealer_store b
  ON a.order_no = b.order_no
 WHERE DATE(create_time) = '20171219'
  AND DATE(create_time) > DATE_SUB('20171219', INTERVAL 7 DAY)
  ) t2
 ON t2.day = t1.day
GROUP BY t1.`day`;

2.1 連續(xù)天數(shù)表

SELECT
 @cdate := DATE_ADD(@cdate, INTERVAL - 1 DAY) DAY
 FROM
 (SELECT
  @cdate := DATE_ADD('20171219', INTERVAL + 1 DAY)
 FROM
  order) t0
 LIMIT 7

執(zhí)行結(jié)果如下:

SQL分析:

1. @cdate :=  是定義名為cdate的變量并賦值(select 后面必須用:=)

2.@cdate := DATE_ADD('20171219', INTERVAL + 1 DAY) 按照傳入的日期'20171219',加一天

3.SELECT @cdate := DATE_ADD('20171219', INTERVAL + 1 DAY) FROM `order`  找一張表記錄肯定大于10條的即可,執(zhí)行結(jié)果如下:

4.@cdate := DATE_ADD(@cdate, INTERVAL - 1 DAY) DAY  把定義的cdate變量天數(shù)-1(自減)

5.LIMIT 7 限制一下條數(shù),大功告成,我們得到了指定日期往前7天的記錄

2.2 左關(guān)聯(lián)然后分組

left join group by t1.day

即按照左表關(guān)聯(lián)業(yè)務(wù)數(shù)據(jù),根據(jù)左表的日期分組,即分成了指定的7天數(shù)據(jù),有記錄就統(tǒng)計(jì)條數(shù),沒有記錄就是0

最終執(zhí)行結(jié)果:

總結(jié)

以上所述是小編給大家介紹的mysql按照天統(tǒng)計(jì)報(bào)表當(dāng)天沒有數(shù)據(jù)填0的實(shí)現(xiàn)代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • MySQL 統(tǒng)計(jì)查詢實(shí)現(xiàn)代碼
  • MYSQL中有關(guān)SUM字段按條件統(tǒng)計(jì)使用IF函數(shù)(case)問題
  • 如何使用MySQL查詢某個(gè)列中相同值的數(shù)量統(tǒng)計(jì)
  • 利用MySQL統(tǒng)計(jì)一列中不同值的數(shù)量方法示例
  • 單個(gè)select語句實(shí)現(xiàn)MySQL查詢統(tǒng)計(jì)次數(shù)
  • MYSQL每隔10分鐘進(jìn)行分組統(tǒng)計(jì)的實(shí)現(xiàn)方法
  • MySQL中幾種數(shù)據(jù)統(tǒng)計(jì)查詢的基本使用教程
  • MySQL按時(shí)間統(tǒng)計(jì)數(shù)據(jù)的方法總結(jié)
  • mysql 獲取規(guī)定時(shí)間段內(nèi)的統(tǒng)計(jì)數(shù)據(jù)
  • MySQL統(tǒng)計(jì)函數(shù)GROUP_CONCAT使用陷阱分析
  • mysql滑動(dòng)訂單問題原理與解決方法實(shí)例分析

標(biāo)簽:蘭州 黃山 仙桃 衡水 湖南 湘潭 崇左 銅川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql按照天統(tǒng)計(jì)報(bào)表當(dāng)天沒有數(shù)據(jù)填0的實(shí)現(xiàn)代碼》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    论坛| 四川省| 静宁县| 牡丹江市| 洛川县| 徐水县| 芜湖县| 许昌市| 奉贤区| 扎兰屯市| 溆浦县| 嫩江县| 汾西县| 荔波县| 张家界市| 徐州市| 海南省| 汕尾市| 林周县| 鸡西市| 山西省| 上饶县| 武鸣县| 麻阳| 根河市| 龙游县| 鄱阳县| 沁源县| SHOW| 霍邱县| 汾西县| 西和县| 石柱| 老河口市| 柯坪县| 南宫市| 夏河县| 上犹县| 清水县| 偃师市| 达州市|