1

1 つのフィールドが特定の回数発生する行を表示しようとしています。次の表を想定しています。Campaign

+------------+-------------+--------------+------- ------+  
| | アカウント ID | キャンペーン ID | アカウント名 | アカウント_ユーザー |  
+------------+-------------+--------------+------- ------+
| | 85 | 21 | あ | 36 |  
| | 45 | 69 | ビ | 82 |  
| | 78 | 78 | シー | 28 |  
| | 69 | 65 | D | 25 |  
| | 85 | 87 | え | 96 |  
| | 78 | 12 | ふ | 63 |  
| | 78 | 78 | ガ | 96 |  
+------------+-------------+--------------+------- ------+

そしてテーブルAccount

+------------+--------------+
| | アカウント ID | アカウントコード |
+------------+--------------+
| | 85 | AAA |
| | 45 | ABC |
| | 78 | RTY |
| | 69 | ワー |
| | 85 | AAA |
| | 78 | RTY |
| | 78 | RTY |
+------------+--------------+

テーブルで2 回以上発生したアカウントについてのみ、テーブルの ( )を含むすべてのCampaignテーブル列を表示する必要があります。したがって、結果は次のようになります。 joinaccount_codeaccountaccount_idcampaign

+------------+-------------+--------------+------- ------+--------------+
| | アカウント ID | キャンペーン ID | アカウント名 | アカウント_ユーザー | アカウントコード |
+------------+-------------+--------------+------- ------+--------------+
| | 85 | 21 | あ | 36 | AAA |
| | 78 | 78 | シー | 28 | RTY |
| | 85 | 87 | え | 96 | AAA |
| | 78 | 12 | ふ | 63 | RTY |
| | 78 | 78 | ガ | 96 | RTY |
+------------+-------------+--------------+------- ------+--------------+

GROUP BYandHAVING句 を使用しようとしましたが、機能していないようです:

SELECT c.account_id ,c.campaign_id ,c.account_name ,c.account_users ,a.account_code  
FROM campaign c  
INNER JOIN account a  
GROUP BY c.account_id, c.campaign_id, c.account_name, c.account_users, a.account_code
  HAVING count(*) >= 2;

ここで何か不足していますか?

4

5 に答える 5