- 在线时间
- 0 小时
- 最后登录
- 2007-9-23
- 注册时间
- 2004-9-10
- 听众数
- 3
- 收听数
- 0
- 能力
- 0 分
- 体力
- 9975 点
- 威望
- 7 点
- 阅读权限
- 150
- 积分
- 4048
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1893
- 主题
- 823
- 精华
- 2
- 分享
- 0
- 好友
- 0

我的地盘我做主
该用户从未签到
|
< >Having; N6 B* J8 ~" Y& M+ T/ g" c, y
用途: 6 D- C) x8 z9 c1 M6 E+ q+ }3 N3 t! C
</P>< >指定群组或汇总的搜寻条件。</P>< >语法:
: B4 k: D% U2 W* ?+ ^- ~$ F1 V' ? </P>< >SELECT column,SUM(column) FROM table : ^2 W9 B3 v! L- D: C. P
GROUP BY column
% a+ r0 u3 [ M% [$ p/ f: HHAVING SUM(column) condition value
" R1 n G2 n4 ]* X7 O' K" E% m E8 Z/ U/ K2 c& M- N% h B
解释: 3 t6 w( B2 x4 S8 M0 ?# {5 ?8 ]
</P>< >HAVING 通常与 GROUP BY 子句同时使用。不使用 GROUP BY 时,HAVING 则与 WHERE 子句功能相似。
! N0 u0 ^! k: i I/ i4 g6 z </P>< >例:
2 i( H% y# E$ I$ \1 n% M: v, b7 l </P>< >"Sales"表中的原始数据: 6 W' {& Q" q4 E% }$ B4 i$ I- F
</P>< >Company ( [9 t+ k* }+ v$ W
: |* L; p1 q4 o& w8 N& a0 A/ `/ X
Amount J& |& [8 f+ ~$ ?1 T2 }
6 a! U- G, V3 _9 X* ~" J, U8 h
+ B" o) B5 Q* x1 J" A! UW3Schools 3 i$ i ~! L- c" Q
/ I" R p' p* a# z0 ?% h 5500 ! t' Q- |* C/ ~7 K
3 B$ |" b' g4 n# a8 V2 K4 D+ ]
* z* V6 l- e) @* eIBM ! X- C$ Y4 }) W" w) ^1 _/ p
# }& _' G2 q3 \ 4500
! j. s9 S9 S, s7 s7 O; b
: e+ Z6 F! z9 T% _% q6 G
5 {! }. h$ b B; [" |W3Schools
5 J3 y1 ^/ }0 ?2 J+ E F8 Y/ f l# F% s! I
7100 9 w7 r& |% _' C' ^ Q4 L
$ E1 V% D' J2 e- x: N& H0 g </P>< >按照Company字段进行分组,求出每个Company的Amout的合计在10000以上的数据:</P>< >SELECT Company,SUM(Amount) FROM Sales # `' X J2 c6 r5 _: O9 G d
GROUP BY Company HAVING SUM(Amount)>10000
0 G: M5 l! H7 M6 B4 M. {! | </P>< >返回结果:</P>< >Company " [7 T7 k% \1 l3 T7 S7 v3 ]
: W+ y: d6 }+ Y' `& G
SUM(Amount) 7 n/ B2 `: |0 L4 k. {; R
9 q# L" E4 j+ N8 q, [% {* P
6 t+ W1 _! _/ i* I$ R6 ~
W3Schools
8 c! ?* L- e8 m2 X' b+ E 1 _/ {7 R7 j8 w, Y
12600 , D( G+ Q/ c1 }+ V$ ]# N n
5 m8 `9 w$ |0 X
$ ~; @- `8 l7 y/ x
' g1 x; J/ m1 l; o/ \, o8 T! O </P>< > * p- [5 C! [8 o3 \/ Z
</P>< >Join
$ U4 q0 [3 z/ W( i& c! a用途:
/ T- ]9 [0 a7 N- o% l </P>< >当你要从两个或者以上的表中选取结果集时,你就会用到JOIN。</P>< >例: & m( H7 J8 h: ]3 M3 r* @
</P>< >"Employees"表中的数据如下,(其中ID为主键):
/ v g! O2 X0 o& G3 |. @# o8 [ </P>< >ID 6 Y8 ]7 N- C% l5 I2 q4 Z) ]7 w% n
" I: G) q. _. R Name
- y+ b7 j- C& U6 e/ G2 Q & r) e; p. S4 O8 W" O
% E: K+ l6 c6 `
01 ; Y9 U# ~. ~& d9 g+ m
; `2 }/ o u) M) m/ ?) x
Hansen, Ola 2 ?) Z, V( q' B( {2 O2 F8 A
; S1 n" ~- r' Y& d( n3 h
e% B- E8 u) I8 @1 w1 @02
7 d. `* r5 }$ s( d: f # Z" ^2 Z; a8 n! T5 B
Svendson, Tove * u4 F7 N+ b _9 J4 q
+ a# I1 h* U: j( M
( v8 x/ H$ S/ H4 Y03 7 K& c: }6 i4 e3 X8 G
( R2 O b1 I5 Y% q6 ]4 o/ G- ]/ P
Svendson, Stephen + }! L4 u- O* C8 t
/ z! t. ~$ W, K" I 4 N+ G' V7 v1 v ]8 H; `% a
04 ; x& ]: P0 W3 C
2 I5 i, C2 _9 ]( A Pettersen, Kari
, O' f7 Y6 H3 P4 g" z3 ] ) {7 ]1 A" e/ ]
. c9 R6 f1 t5 C5 P
"Orders"表中的数据如下:
! A/ J& I$ K9 V) H </P>< >ID / a, z; _/ l: r5 C
5 b3 W4 D! a6 E, w$ ~9 P
Product
; Z8 c/ S) I6 ` ]. P9 p
( u2 G8 h( s, G/ ]7 K: h
/ C. O9 M+ u% O. l. t" L3 }01 6 s' {2 \$ a' i% y; S6 b
3 N: f8 w4 j! I6 m+ P! g6 w1 {" V8 O Printer
4 Q! h6 f2 Z0 D) n' e
1 ^: i- k+ [' I
1 e' d7 r: j$ ?* [6 J. `03 * [7 S; w+ p# I& ~7 G3 ?
$ B) a$ v: H8 A+ V% h! K& M
Table
2 T: u0 p3 }( \3 J* ?6 i/ q( l
2 r% E/ `4 `) {4 Z4 l
. F% r$ `) [1 \1 n03 2 }& _/ ]% t- B8 j0 q
% X7 J2 R+ g- k3 u" N5 C! l
Chair . f! j( s) j, U; [1 h0 z2 g
, k( D, ]0 D7 W </P>< >用Employees的ID和Orders的ID相关联选取数据:</P>< >SELECT Employees.Name, Orders.Product
1 K- ? z; a" g+ NFROM Employees, Orders
, o7 c) x; }+ x& r1 LWHERE Employees.ID = Orders.ID ( l2 l! Q$ Y4 L1 p; ?& p" y
, z2 N+ I' R6 [' j, \
返回结果:
+ ^0 G, ?# g- V6 e: V, c" { </P>< >Name - ?- A. M' {: M, D o2 j9 l
. h4 Q6 }8 G% ]- p6 H Product I0 k7 d/ r; H% M( s
2 J" B, _8 k4 _
; `8 L0 z6 b( wHansen, Ola 7 W8 B4 X# a4 h- X# n, T
. r( Z* K& X4 r i! `* a3 N) }
Printer * o8 r* v$ ^ [0 M2 ~) p; c
# n* u7 W2 G1 o% t" s4 ~
& C4 }# B4 j" z
Svendson, Stephen 9 W. N: V0 \: Z9 l2 ^1 J
$ P. @) R( k- d" @, }% Q2 |
Table 5 H, P- E6 o- l, ?0 K; |3 t$ W2 i
, D' C- `/ d4 g- ^, L8 M1 W
* X; H0 c8 w4 F: s$ `; G* pSvendson, Stephen ; \ Q/ x& a* k* U
?! A9 o0 @) P; p& A4 N
Chair & \3 U8 _. G! f$ A# F3 n
/ s7 T! a3 h0 J
</P>< >或者你也可以用JOIN关键字来完成上面的操作:</P>< >SELECT Employees.Name, Orders.Product ; I+ S7 P! M5 V. l7 Z0 W
FROM Employees
* `: I' ]9 S2 s& j2 d! HINNER JOIN Orders
: Y, m6 p9 |& E! x5 yON Employees.ID = Orders.ID / r$ G! W- w) L" Y( Z+ ]- R/ B8 ~
</P> |
|