所以我有一张由campaign_id
和post_id
组成的表格。
campaign_id
可以有多个post_id
。
但post_id
只能分配给一个 campaign_id
。
例如: 这是有效的
campaign_id | post_id
100 1
100 2
100 3
这是无效的
campaign_id | post_id
100 1
100 2
100 3
101 1 <-- `post_id` assigned to 2 `campaign_id`
我正在尝试编写一个查询,该查询将返回按post_id
分配的广告系列数量,因此我可以进行一些完整性检查,但无法弄清楚如何。
我现在拥有的东西:
select distinct campaign_id, post_id from table
where post_id is not null;
答案 0 :(得分:1)
像这样,使用GROUP BY和COUNT聚合:
SELECT t.post_id
, COUNT(DISTINCT t.campaign_id)
FROM mytable t
GROUP BY t.post_id
HAVING COUNT(DISTINCT t.campaign_id) > 1
ORDER BY t.post_id
注意:
如果您想要返回HAVING
的所有值,包括仅与post_id
相关联的值,则可以省略campaign_id
子句。
DISTINCT
关键字也可以省略。如果给定campaign_id
的{{1}}重复值,则会产生影响。例如,使用以下行:
post_id
您是否希望将计数返回为1或3.
答案 1 :(得分:0)
如何使用COUNT
:
SELECT COUNT(campaign_id)
FROM table
GROUP BY post_id
WHERE post_id IS NOT NULL