人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

MySQL連表查詢分組去重的實(shí)現(xiàn)示例

發(fā)布日期:2022-02-10 11:11 | 文章來源:gibhub

業(yè)務(wù)邏輯

通過多種渠道將小程序的活動頁鏈接發(fā)布出去,比如通過多多種短信附帶鏈接( channel 就記為 sms1,sms2,sms3 ),或者海報(bào)上面貼微信小程序的二維碼( channel 記為 qrcode1,qrcode2,qrcode3 ),線下會員通過掃描二維碼也能進(jìn)入小程序指定的活動頁,亦或者是通過其他會員分享的小程序鏈接也可以進(jìn)入小程序( channel 記為 share)。這些不同的進(jìn)入方式在我這篇文章統(tǒng)稱為不同的渠道,也就是提到的 channel 字段。從不同的渠道進(jìn)入活動頁就會產(chǎn)生一條頁面訪問記錄。會被計(jì)入 page_view 這張表里。

會員進(jìn)入小程序的指定活動頁后,在頁面上面觸發(fā)一系列操作后,會得到相應(yīng)的反饋,比如獲得積分,或者獲得優(yōu)惠券等等。這步操作稱為參與活動。這條數(shù)據(jù)會被記入 activity_record 這張表里。

現(xiàn)在呢,運(yùn)營小姐姐要求得到一份數(shù)據(jù)報(bào)表。每位參與活動的會員是從什么時(shí)間,哪個渠道里面進(jìn)活動的?

數(shù)據(jù)表結(jié)構(gòu)

表名 member_id participate_time
activity_record 會員號 活動參與時(shí)間

表名 member_id channel view_time
page_view 會員號 渠道 頁面訪問時(shí)間

查詢邏輯

因?yàn)槊课粫T只能參加一次活動,也就是活動期間只能獲得過一次積分,或者領(lǐng)取過一次優(yōu)惠券等等這種意思,也就是每位會員最多只會產(chǎn)生一條 activity_record 記錄。

可是 page_view 這張表的記錄方式就不一樣了。會員可能既收到過短信鏈接,又掃描過活動二維碼,又被好友分享過活動鏈接,這下,對于這位會員來說,就會產(chǎn)生多條頁面訪問記錄,即在 page_view 里產(chǎn)生多條數(shù)據(jù)。

你想想,會員肯定是先通過某一個渠道進(jìn)入到活動頁面,才能去參加活動。也就是有多條 page_view 的數(shù)據(jù),按照 view_time 倒序排列,總有一條的 view_time 是小于且最接近于 activity_record 的 participate_time,下一條 page_view 的 view_time 就會大于 activity_record 的 participate_time。

SQL腳本

select c.member_id,c.view_time,.channel from (
SELECT
 member_id,
 SUBSTRING_INDEX( GROUP_CONCAT( view_time ORDER BY view_time DESC ), ',', 1 ) AS view_time,
 SUBSTRING_INDEX( GROUP_CONCAT( channel ORDER BY channel DESC ), ',', 1 ) AS channel
FROM
 page_view a LEFT JOIN activity_record b
        on a.member_id = b.member_id
        where a.view_time < b.participate_time
GROUP BY
 member_id) c;

腳本說明

  • GROUP_CONCAT:通過使用distinct可以排除重復(fù)值; group_concat( [distinct] 要連接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )
  • SUBSTRING_INDEX:字符串截取函數(shù)。substring_index(str,delim,count)。str:要處理的字符串;delim:分隔符;count:計(jì)數(shù)

到此這篇關(guān)于MySQL連表查詢分組去重的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)MySQL連表查詢分組去重內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

海外穩(wěn)定服務(wù)器

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部