0

内部結合の結果をカウント/グループ化するのに問題があります

私は2つのテーブルを持っています

  1. results_dump: 2 つの列があります: emailand result(結果の値は または のいずれopenかになりますbounce)

  2. all_data: と の 3 つの列がありemailますfull_nameaddress

"open"最初の目標は、result_dump テーブルにクエリを実行し、結果が特定の の回数を数えてグループ化することですemail

このクエリはうまく機能します。

SELECT `email`, COUNT(*) AS count
FROM `result_dump`
WHERE `date` = "open" 
GROUP BY `email`
HAVING COUNT(*) > 3
ORDER BY count DESC

2 番目の目標は、これらの結果 (3 回以上 "開封" した人) を取得し、'full_name' と 'address' を取得して、3 回以上電子メールを開封したユーザーの詳細を取得することです。

私はこのクエリを持っており、データをまとめる限り機能します - しかし、 を取得する方法とCOUNT?HAVINGを操作ORDERする方法がわかりません。INNER JOIN

SELECT *
FROM all_data
INNER JOIN result_dump ON 
all_data.email = result_dump.email
where `result` = "open" 
4

3 に答える 3

4
SELECT email,name,count(*)
FROM all_data
INNER JOIN result_dump ON 
all_data.email = result_dump.email
where `result` = "open" 
group by result_dump.email
having count(*)>3
ORDER by count DESC

これで何も問題ないと思います。

于 2012-09-26T18:22:36.857 に答える
1

次のクエリを試してください。

SELECT * FROM all_data AS a
INNER JOIN 
(SELECT * FROM result_dump where email IN 
                                    (SELECT `email`
                                     FROM `result_dump`
                                     WHERE `date` = "open" 
                                     GROUP BY `email`
                                     HAVING count(email) >3
                                     ORDER BY count(email) DESC)) AS b
ON a.email = b.email
WHERE b.`result` = "open" 
于 2012-09-26T18:27:04.840 に答える