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
テーブル列を表示する必要があります。したがって、結果は次のようになります。 join
account_code
account
account_id
campaign
+------------+-------------+--------------+------- ------+--------------+ | | アカウント ID | キャンペーン ID | アカウント名 | アカウント_ユーザー | アカウントコード | +------------+-------------+--------------+------- ------+--------------+ | | 85 | 21 | あ | 36 | AAA | | | 78 | 78 | シー | 28 | RTY | | | 85 | 87 | え | 96 | AAA | | | 78 | 12 | ふ | 63 | RTY | | | 78 | 78 | ガ | 96 | RTY | +------------+-------------+--------------+------- ------+--------------+
GROUP BY
andHAVING
句 を使用しようとしましたが、機能していないようです:
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;
ここで何か不足していますか?