????有這樣一個(gè)日志表,存著用戶點(diǎn)擊的記錄,一天可能有多條記錄;現(xiàn)在想統(tǒng)計(jì)出,只有一天點(diǎn)擊記錄的用戶,有兩天的點(diǎn)擊記錄的用戶,有三天的點(diǎn)擊記錄的用戶,以此類推4天,5天....這個(gè)sql應(yīng)該如何寫(xiě)?
????表相關(guān)字段:
id(PK,AI) | user_id | click_time(點(diǎn)擊時(shí)間:Y-m-d H:i:s) |
先說(shuō)結(jié)果。
SELECT TO_DAYS(MAX(time))-TO_DAYS(MIN(time)),USER FROM test GROUP BY USER
執(zhí)行后,結(jié)果如下:
0 王
1 李
2 張
根據(jù)用戶分組查詢,然后計(jì)算該用戶的最大時(shí)間和最小時(shí)間之差。比如0和王這條記錄,表示王這個(gè)用戶所有記錄都在同一天。
---------------------------分割線-----------------------------
經(jīng)過(guò)@邢愛(ài)明同學(xué)的提示,才發(fā)現(xiàn)自己第一時(shí)間想錯(cuò)了。
重新思考以后,只需要寫(xiě)一句代碼即可。
自己測(cè)試新建了一張表test,表結(jié)構(gòu)如下
SELECT NAME,COUNT(DISTINCT(DATE(click_time))) FROM test GROUP BY NAME
執(zhí)行完sql以后如下:
來(lái),邏輯,先將點(diǎn)擊時(shí)間設(shè)置在某個(gè)范圍然后去重 user_id (distinct),或者分組 group by。這是第一步,然后使用 count 函數(shù)進(jìn)行統(tǒng)計(jì),總共有多少條,也就是有多少天,然后再依據(jù)這個(gè)結(jié)果進(jìn)行分組。也就出現(xiàn)了,一天,兩天,三天的排列。希望具體語(yǔ)句如果不會(huì)你要先去學(xué)習(xí)一下。具體寫(xiě)的我寫(xiě)在下面給你。
select a.datenum,group_concat(a.user_id,',') from (select count(*) as datenum,user_id from table group by to_days(click_time),user_id ) as a group by a.datenum;
ps: 啊,因?yàn)闆](méi)有具體數(shù)據(jù)測(cè)試,具體能不能使用,你還是要測(cè)試一下(如果你要用我寫(xiě)的話)。邏輯大概如此。
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
北大青鳥(niǎo)中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過(guò)二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。