MYSQL sum() for distinct rows

前端 未结 8 1847
太阳男子
太阳男子 2020-11-28 04:43

I\'m looking for help using sum() in my SQL query:

SELECT links.id, 
       count(DISTINCT stats.id) as clicks, 
       count(DISTINCT conversions.id) as con         


        
8条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-11-28 04:49

    This will do the trick, just divide the sum with the count of conversation id which are duplicate.

    SELECT a.id,
           a.clicks,
           SUM(a.conversion_value/a.conversions) AS conversion_value,
           a.conversions
    FROM (SELECT links.id, 
           COUNT(DISTINCT stats.id) AS clicks, 
           COUNT(conversions.id) AS conversions, 
           SUM(conversions.value) AS conversion_value 
          FROM links 
          LEFT OUTER JOIN stats ON links.id = stats.parent_id 
          LEFT OUTER JOIN conversions ON links.id = conversions.link_id 
          GROUP BY conversions.id,links.id
          ORDER BY links.created DESC) AS a
    GROUP BY a.id
    

提交回复
热议问题