校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > MySQL連表查詢分組去重的實現示例

MySQL連表查詢分組去重的實現示例

熱門標簽:高清地圖標注道路 拉卡拉外呼系統 臨清電話機器人 大眾點評星級酒店地圖標注 400電話可以辦理嗎 智能外呼系統復位 云南電商智能外呼系統價格 外東北地圖標注 話務外呼系統怎么樣

業務邏輯

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

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

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

數據表結構

表名 member_id participate_time
activity_record 會員號 活動參與時間

表名 member_id channel view_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連表查詢分組去重的實現示例的文章就介紹到這了,更多相關MySQL連表查詢分組去重內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • windows無法啟動MySQL服務報錯1067的解決方法
  • mysql 數據插入優化方法之concurrent_insert
  • MySQL的Query Cache圖文詳解
  • mysql優化之query_cache_limit參數說明
  • MySQL中存儲時間的最佳實踐指南
  • MySQL在Windows中net start mysql 啟動MySQL服務報錯 發生系統錯誤解決方案

標簽:阿里 三明 溫州 福州 揚州 定西 無錫 山西

巨人網絡通訊聲明:本文標題《MySQL連表查詢分組去重的實現示例》,本文關鍵詞  MySQL,連表,查詢,分組,去,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL連表查詢分組去重的實現示例》相關的同類信息!
  • 本頁收集關于MySQL連表查詢分組去重的實現示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 禹州市| 通江县| 福泉市| 平谷区| 浦县| 遂宁市| 黔西县| 古蔺县| 大同市| 都匀市| 大渡口区| 南通市| 会昌县| 巴塘县| 垫江县| 罗山县| 吉林省| 吉隆县| 巴林右旗| 南阳市| 阳新县| 黑龙江省| 张家界市| 福泉市| 蒙自县| 揭西县| 衡山县| 泸州市| 鄂托克前旗| 达拉特旗| 轮台县| 平邑县| 临西县| 交口县| 贵阳市| 信阳市| 阿拉善左旗| 什邡市| 渭南市| 内黄县| 雷波县|