2017-01-04 3 views
-1

より大きいので、ニュースレターにinterspireを使用しています。リスト13,18、および24のメンバーから、5回以上電子メールを開いた電子メールを取り出したいと思っていました。 Interspireは私が複数回開かれた人々のためのセグメントを作成することを可能にするセグメントの機能を持っている、これはSQLです:interspire openersが

select distinct 
    `email_list_subscribers`.`emailaddress` AS `emailaddress` 
from 
    (`email_list_subscribers` join `email_stats_emailopens`) 
where 
    ((`email_stats_emailopens`.`subscriberid` = `email_list_subscribers`.`subscriberid`) 
    and (`email_list_subscribers`.`listid` = 18)) 

この1つは、リスト18ので、私のことが可能でキャンペーンを開いたすべてのユーザーをつかみますセグメントを作る。

しかし、私がやりたいが、これらの3つのリストに5回以上を開いたユーザー 13,18,24

を抽出している私は、この小さなSQLをしましたが、実行するのに年齢をとり、私は後に、それを停止しなければなりませんでした20分:

SELECT email_stats_emailopens.subscriberid 
    FROM email_stats_emailopens , 
email_list_subscribers 
GROUP BY email_stats_emailopens.subscriberid 
HAVING COUNT(email_stats_emailopens.subscriberid) > 3 
limit 1 

誰でも知っていますか?私はSQLとあまり良くはありません。

+0

参加条件は必要ありませんか? – jarlh

+0

は、5回すべてのリストが含まれているか、これらのリストに5回含まれていますか? –

答えて

0

私は右のあなたを理解していれば、これはあなたが探しているものをあなたを与える必要があります。

SELECT 
    EO.subscriberid 
FROM 
    email_list_subscribers S 
INNER JOIN email_stats_emailopens EO 
ON S.subscriberid = EO.subscriberid 
where S.listid IN (13,18,24) 
GROUP BY EO.subscriberid , S.listid 
HAVING COUNT(1) > 5 

が、これはあなたのニーズを満たしていない場合、私に教えてください。

+0

これは、各リストで5回以上電子メールを開いたユーザーのみを返します。あなたがあなたのリストのすべてを合計して5倍以上を探しているならば。 'GROUP BY EO.subscriberid、S.listid'を' GROUP BY EO.subscriberid 'に変更してください。 –

+0

はい、動作します。ありがとう!!!! – user80906

+0

はいこれも多くのスピードアップ – user80906

関連する問題