91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL如何實現連表查詢分組去重

發布時間:2021-07-01 13:44:33 來源:億速云 閱讀:357 作者:小新 欄目:開發技術

這篇文章主要介紹MySQL如何實現連表查詢分組去重,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

業務邏輯

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

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

現在呢,運營小姐姐要求得到一份數據報表。每位參與活動的會員是從什么時間,哪個渠道里面進活動的?

數據表結構

表名member_idparticipate_time
activity_record會員號活動參與時間
表名member_idchannelview_time
page_view會員號渠道頁面訪問時間

查詢邏輯

因為每位會員只能參加一次活動,也就是活動期間只能獲得過一次積分,或者領取過一次優惠券等等這種意思,也就是每位會員最多只會產生一條 activity_record 記錄。

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

你想想,會員肯定是先通過某一個渠道進入到活動頁面,才能去參加活動。也就是有多條 page_view 的數據,按照 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可以排除重復值; group_concat( [distinct] 要連接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )

  • SUBSTRING_INDEX:字符串截取函數。substring_index(str,delim,count)。str:要處理的字符串;delim:分隔符;count:計數

以上是“MySQL如何實現連表查詢分組去重”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

定襄县| 九台市| 富源县| 新昌县| 海阳市| 灵璧县| 闸北区| 南宫市| 延安市| 团风县| 鲜城| 梁山县| 诏安县| 丰宁| 岗巴县| 横峰县| 海口市| 诸暨市| 岳阳市| 吉木萨尔县| 寻甸| 页游| 武山县| 故城县| 新营市| 和林格尔县| 四川省| 惠来县| 京山县| 法库县| 广南县| 自治县| 雅江县| 登封市| 洪洞县| 永仁县| 常德市| 深州市| 阆中市| 石景山区| 云安县|