我的查询是
选择 a.admin_id, count(1) 作为来自管理员的计数 a.admin_id=tc.calling_by 上的左外连接电话 tc,其中 a.is_active='yes' 和 tc.calling_date='2023-11-19' group by a.admin_id;
我想做这样的桌子
admin_id | 数 |
---|---|
1 | 5 |
2 | 空或0 |
但仅获取计数值大于 1 的行。
选择 a.admin_id, count(1) 作为来自管理员的计数 a.admin_id=tc.calling_by 上的左外连接电话 tc,其中 a.is_active='yes' 和 tc.calling_date='2023-11-19' group by a.admin_id;
SELECT a.admin_id, COALESCE(COUNT(tc.called_by), 0) AS count
FROM admin a
LEFT OUTER JOIN telecalling tc ON a.admin_id = tc.called_by AND tc.calling_date = '2023-11-19'
WHERE a.is_active = 'yes'
GROUP BY a.admin_id;
此查询中使用 COALESCE 函数将 NULL 值替换为 0。LEFT OUTER JOIN 保证所有管理记录都包含在结果中,而 COALESCE 函数则处理在
telecalling
数据库中找不到匹配条目的情况。