|
|
1* G4 m* K" j( G5 Z
现有表bill和表payment结构如下,两表通过pay_id关联:
8 ?0 Q+ x1 E- c! M: C7 \0 Mbill表――bill_id是帐单标识,charge为帐单金额,pay_id为付款编号,PK:bill_id
0 }9 _. E. b" h% ^( M7 Wbill_id INTEGER- {' g4 V" g. \) k9 E* [6 E
charge INTEGER
: r4 g7 F0 B$ N a9 Y5 A/ Npay_id INTEGER" l/ d4 B: b3 z1 R; I/ |
6 [+ U+ z( W5 E
payment表――pay_id为付款编号,charge为付款金额,PK:pay_id
- c5 B7 {7 A8 I( {" w- b# v" e) o+ i& Tpay_id INTEGER
5 n& v& P2 a/ {8 {; X wcharge INTEGER5 U. J% }" B; e2 D
, _* @7 ^! a# M7 ]" H X6 T
要求更新payment使charge=bill表中同一pay_id的charge之和。
- s, A- T0 X j9 {4 h! h5 ^( Y
. m/ W3 w# a m5 J2! `9 F9 q# r# N
起始地 目的地 距离(公里)
( s: q' @. p& ]7 EA B 1000/ G" R2 i5 d8 B+ P9 k4 U8 d7 F
A C 1100
; V7 J9 `/ A: Z) U- ~A D 900
' r$ C T6 s5 D) l9 W( k# f6 rA E 400
, j' P) x6 C- w, {B D 3008 {$ }7 a% g* V; U Q
D F 600
* x/ m8 O. N& O8 X6 n/ EE A 400" K% p: Q3 ^* a; c: a
F G 1000, A0 d' N! e6 Z7 P! A- h5 a2 E
C B 600
* m* T% [2 O2 t4 V请用SQL语句或一段代码写出从A出发,可达到的目的地(包括间接方式)。! w% V' @) p9 F% b+ F5 p2 K
3 ^* _$ i8 X9 d' o: Q3
; i8 v! C/ E+ T7 B6 G2 m. d: |- x表A定义如下:6 X3 D+ g+ F. k) f0 ]& Z6 Y
属性 类型 备注
2 b6 k3 _( `/ Y( C# B) o8 z( rId Integer PK
9 Z7 Z6 C2 A4 t; @$ WName Varchar(30)
( w3 O4 @7 X" K9 R& UState char(3)( S+ i, O0 H8 K9 X: a
表A中现有1000万条记录,如果客户端要通过分页的方式从表A中取数据,其中每页20条4 T3 f' V- D- {) m0 O
记录,有几种方法?描述每种方法如何处理,有什么优缺点?用SQL写出实现代码。
; m) t w- t8 `: ~7 z. c5 j' }! R& y
4; K) M" R- k' U0 @1 P* j
表A定义如下:8 k. _ t& v+ ]8 \/ N" ]
属性 类型
8 l3 v( O, e3 S$ @% ]" EYear Integer
8 y" ^; @7 i) R& }6 x' s, ?Quarter Varchar(30)
g/ i; M7 n% k" ^2 mAmount float2 B% E: T+ b) u) E- u5 o l$ ^
2 C! D2 M. j. R. ?* fYear Quarter Amount
! c, R- R2 }" ^9 h2000 1 1.1
) \6 h. G" S* V6 \6 [6 S2000 2 1.2
0 w8 D& d5 S8 |9 v0 t# ^2000 3 1.3: N! U# D' N2 L6 V) s/ \7 `
2000 4 1.4
4 R) u& B! l2 P% k7 Z; x' V2001 1 2.1
, U3 |. P j) P; x2001 2 2.2 r9 r& |. d5 z+ y
2001 3 2.3
, v( @6 U! j& l5 o3 B: N2001 4 2.4
3 Q, s" T2 i& V0 z, M其中每行表表示一个季度的数据。0 C7 C! F1 z0 c" {/ d; P3 B
% [% d0 A; a. y3 F6 a( k4 P如果处理表A中的数据,得到如下的结果。
# U/ E1 |; x; M N2 TYear Quarter1 Quarter2 Quarter3 Quarter47 z% k) u4 ?2 i
2000 1.1 1.2 1.3 1.4
% F9 j- h7 ^& H( w1 ^5 o5 z2001 2.1 2.2 2.3 2.4
) C" q$ N$ b. l$ b9 g7 Z! H请用SQL写一段代码实现。 |
|