SQL实现两表关联按日期分组统计switchVal非空的table1Id数量
实现SQL语句
你可以通过关联两张表、添加非空筛选后按日期分组统计,参考写法如下:
SELECT t1.`date`, COUNT(DISTINCT t1.`table1Id`) AS distinct_table1_id_count FROM table1 t1 INNER JOIN table2 t2 ON t1.`table1Id` = t2.`table1Id` WHERE t2.`switchVal` IS NOT NULL GROUP BY t1.`date` -- 可选:按日期升序排序 ORDER BY t1.`date`;
说明
- 用
INNER JOIN关联两张表,仅保留同时在两张表中存在匹配关系的记录,符合外键关联的逻辑 - 如果你的统计需求是符合条件的总记录数,而非去重的table1Id数量,将
COUNT(DISTINCT t1.table1Id)替换为COUNT(*)即可 - 字段名添加反引号是为了避免和SQL内置关键字(比如
date)冲突
内容的提问来源于stack exchange,提问作者Kered
相关产品推荐
相关产品推荐

