问题遇到的现象和发生背景
求问这个SQL查出来的结果是什么
问题相关代码,请勿粘贴截图
SELECT COUNT(user_no) FROM t_dwd_fusion_order
GROUP BY user_no,date,com_key
HAVING COUNT(user_no) > 1
AND date=202203
AND com_key IN('ABC','DEF');
求问这个SQL查出来的结果是什么
SELECT COUNT(user_no) FROM t_dwd_fusion_order
GROUP BY user_no,date,com_key
HAVING COUNT(user_no) > 1
AND date=202203
AND com_key IN('ABC','DEF');
这个sql一看上去就一股违和感,它的常规写法应该是这样的
SELECT COUNT(user_no) FROM t_dwd_fusion_order
where date=202203
AND com_key IN('ABC','DEF')
GROUP BY user_no,date,com_key
HAVING COUNT(user_no) > 1 ;
这个sql和你的sql查出来的结果应该是一样的,但是这个sql可能会比你的sql查询效率要高一点,因为我这个是先过滤数据再聚合,而你的是先聚合再过滤数据
假设user_no不会为空的话,那么它表示按user_no、date、com_key分组,条目数大于1;
假设user_no可能为空的话,那么它表示按user_no、date、com_key分组,user_no不为空的条目数大于1