回答

收藏

SQL:使用WHERE AND而不是HAVING

技术问答 技术问答 306 人阅读 | 0 人回复 | 2023-09-14

这是我们使用的SQL语句的示例HAVING:3 C" M. \. p, _+ ]9 Q! ^; _
select column1 from table1
$ M; M# J! V2 w$ X6 t; _3 hwhere condition1
: w9 A1 U! c) R! n3 l4 F7 [; L" \having condition2;4 t: S& N6 _# K. o8 f* D
如果执行此操作,是否完全相同:
% j  q1 U  }' K- J& C0 R+ ?; iselect column1 from table1
. U2 d$ U8 G) L1 Q  p  B' Swhere condition1 AND condition2;
8 p! X+ s! L; z4 B  o1 h* f6 |两者有什么区别?! x* T" d' P$ t/ A
               
8 o8 V) P: D* Z( \% N解决方案:
/ n4 Z- N8 p! v( c$ |& O                9 {7 G. X/ M5 `

0 H3 x5 D0 p1 D0 c% ^
' Q) w& K/ R8 ~/ r0 n                在您的示例中,他们应该做同样的事情。但WHERE得到处理 之前 的任何GROUP
! Z. W6 T0 N0 n$ B& Y; {5 u+ [BY,所以它并没有获得合计值(即,结果Min(),Max()等功能)。 HAVING在 之后 进行处理GROUP
. N- K, m3 o+ Y  n/ VBY,因此可用于将结果集限制为仅那些具有与某个谓词匹配的聚合值的结果集。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则