|
|
楼主 |
发表于 2006-2-22 20:33
|
显示全部楼层
1- N; }' n' r6 A
现有表bill和表payment结构如下,两表通过pay_id关联:
$ G v7 [3 T/ S' O4 u) c1 ?, tbill表――bill_id是帐单标识,charge为帐单金额,pay_id为付款编号,PK:bill_id+ N2 y1 W) P5 o w' m& V/ x$ b
bill_id INTEGER
: o v) r# ^7 K, V% }charge INTEGER
! p s3 p8 d r+ ?7 upay_id INTEGER: f# Z/ O3 }4 k. e/ e( V2 p' P
5 K0 ?% }' v/ Z9 S h5 j" H( C( ypayment表――pay_id为付款编号,charge为付款金额,PK:pay_id+ o2 `, @7 ]# C
pay_id INTEGER
5 h2 D$ W6 M% m9 i! ^ Wcharge INTEGER
) K( P* X6 n! Y
0 k3 w& \2 R' b* r' f1 b$ C7 q* _要求更新payment使charge=bill表中同一pay_id的charge之和。( j0 Q, D5 ^- N) N
- C7 u- O, i0 k5 z
2% c* R3 [9 O$ w# A5 o& v# ?
起始地 目的地 距离(公里)
0 ^4 X! f' U" W) l% R# l4 XA B 1000
: y; @8 [% g9 G. u# {; ~$ O& b' xA C 1100$ D6 [; n1 s, T4 y
A D 900) q8 F' A7 \ Z8 a5 K( J
A E 400
) p% L% u) `* D1 y, b5 [1 h, Q: \* SB D 300
. c! c( C& W! w: ED F 600
% ^/ F" v5 [0 ?( T, N3 b" L! ?7 yE A 400+ U+ l9 g5 Y% I. E
F G 1000
: {, o9 f6 a4 y- V- j+ qC B 600' s' T+ X& u2 y$ P: w$ M
请用SQL语句或一段代码写出从A出发,可达到的目的地(包括间接方式)。' E! ]3 s3 y% w- o- y/ E
6 ~0 V4 A) Y9 \& Q+ ]
3( t a; f' } X2 B! }6 g) S: W
表A定义如下:
# I3 W* d9 q2 i属性 类型 备注
+ I( I( N5 p/ @% {/ A! l b0 [Id Integer PK
, m9 L; T7 X. MName Varchar(30)/ Q1 l7 ?- _+ e5 x3 A% g
State char(3)9 O% L$ O! O- X. ]
表A中现有1000万条记录,如果客户端要通过分页的方式从表A中取数据,其中每页20条
+ V0 F8 \" ]! V$ P+ L3 d记录,有几种方法?描述每种方法如何处理,有什么优缺点?用SQL写出实现代码。3 h2 k9 P4 A9 c8 F7 B
- j8 m6 t7 H- w; u/ W: L( |
4% @% J: B4 F6 l5 F0 I, Q# \
表A定义如下:& H0 P: V/ p1 | ~/ _
属性 类型, g' s6 }* q" t
Year Integer
8 k# f0 x5 c4 O6 ]2 l& H/ r% YQuarter Varchar(30)
. i# P- [" s8 }& C3 KAmount float
9 W$ ~, F: {3 H, T! Q: f2 Q5 b; _2 m6 B7 f& T! u
Year Quarter Amount2 ]" A8 a; _" Z7 }7 Y5 d
2000 1 1.1' Z3 i7 [; e, w" ~
2000 2 1.2 t, y5 q# D& }$ y/ U' U* T
2000 3 1.3
. T2 x2 A6 A" V& K! v2000 4 1.4& C* c8 r1 K" T% \# |1 J, V
2001 1 2.1& E/ M+ X* `3 \, g8 u: Q* p! x
2001 2 2.2
& W/ r( }) |5 \2 C% o2001 3 2.3
. ? A( L- Y3 K) ^1 x( K2001 4 2.4' O. b. R/ B' \+ s% a% \$ k, b
其中每行表表示一个季度的数据。/ ~( ^* x8 s% ^3 L; P
7 V1 q2 \& n- c# P% T* u9 P
如果处理表A中的数据,得到如下的结果。! f* d7 y, Q# x* s
Year Quarter1 Quarter2 Quarter3 Quarter44 N3 \+ f: r9 u3 m" V. K( D) Z
2000 1.1 1.2 1.3 1.4) s7 y& O6 y) a
2001 2.1 2.2 2.3 2.4' s+ y! A% i+ `
请用SQL写一段代码实现。 |
|