mysql concat 唯一鍵 count distinct 去重
阿新 • • 發佈:2020-09-23
本文連結:https://www.cnblogs.com/tujia/p/13717931.html
一、背景
事情是這樣的:需求要求按月的時間維度統計商品的被諮詢情況,但諮詢量需要按天去重的,即一個會員一天內向客服小姐姐放了N次商品連結,商品諮詢量只能算一次
二、未去重的情況
第一次做的時候,是按月的維度,直接統計商品的被諮詢次數
SELECT msg_month, goods_code, COUNT(*) AS send_count FROM im_single_msg_detail WHERE msg_month BETWEEN 202007 AND 202009GROUP BY msg_month, goods_code ORDER BY msg_month ASC, send_count DESC LIMIT 0, 10
後來產品說不太符合他們的要求,發現有一些使用者一天會給客服傳送10幾20次商品連結,這樣不去重的統計被諮詢次數就沒有什麼意義不了,不方便他們做商品被諮詢排行和諮詢轉化率(轉化為訂單的概率)
三、利用 concat來拼接唯一鍵,再用 count distinct來統計諮詢量
要求:同一天內同一使用者向客服傳送同一個商品的連結,不管傳送幾次都只算一次諮詢量
也就是說:concat(msg_date,member_code,goods_code)一樣的時候,不管出現幾次都只算一次,即:distinctconcat(msg_date,member_code,goods_code)
SELECT msg_month, goods_code, COUNT( DISTINCT CONCAT( msg_date, member_code, goods_code ) ) AS send_count FROM im_single_msg_detail WHERE msg_month BETWEEN 202007 AND 202009 GROUP BY msg_month, goods_code ORDER BY msg_monthASC, send_count DESC LIMIT 0, 10
注:一直都不知道還用 distinctconcat這種用法,今天發現這個,還蠻神奇的~
本文連結:https://www.cnblogs.com/tujia/p/13717931.html
完。