|
|
1. i- h5 A [- n2 [: r- w( @2 D
现有表bill和表payment结构如下,两表通过pay_id关联:" Q3 a" v! S1 S3 H
bill表――bill_id是帐单标识,charge为帐单金额,pay_id为付款编号,PK:bill_id
7 {: G- U* |& o8 j: t: R. L& S( P. ]bill_id INTEGER
' W' g6 ?! J* x' a5 Q4 E6 acharge INTEGER3 [& Y( m D- v: Z! p6 N) b
pay_id INTEGER
: U* t* s: W' w8 k
, r$ C8 i' n6 }: D; wpayment表――pay_id为付款编号,charge为付款金额,PK:pay_id% Z$ W |" B0 P$ A
pay_id INTEGER/ _* {; l. K% B8 X
charge INTEGER8 \' ?/ r X, C6 @
' b# d. d7 x- D
要求更新payment使charge=bill表中同一pay_id的charge之和。
; ?3 k5 R7 M' a. |7 J9 |# c0 S& D+ v) p( H$ G( s |
24 S! U6 Z! A: Z0 W
起始地 目的地 距离(公里)
: t; Q* K! v9 t6 F5 A5 i- m& M+ q9 u2 jA B 1000
) v @/ p O3 g: k- l TA C 11005 v: K& l3 k; _$ X( y7 o1 n7 K
A D 9008 w- j( ]" I2 o! u/ m
A E 4004 B: f1 O+ e( w8 B1 d+ _( V
B D 300; c0 q3 G$ ]+ C) |
D F 600% k) V! s* |2 U/ M- f
E A 400
4 V, f$ m6 [9 IF G 1000
# M: F* x2 n0 r( AC B 600
; E& a! U5 N9 |! o请用SQL语句或一段代码写出从A出发,可达到的目的地(包括间接方式)。 e9 W& c4 X+ Q
, o! c& F! {4 B$ c! M
3
- [+ {' `5 C# W( o, g表A定义如下:
7 H6 f' W7 T& ^4 u+ z$ R属性 类型 备注0 c/ m# G3 {) [8 ?2 p
Id Integer PK
, w o1 @/ C4 e( Y5 z8 @ |Name Varchar(30), d# E" p! t7 K; F9 K8 q
State char(3)# X9 P& |0 q, p6 p! V9 ]4 g, D
表A中现有1000万条记录,如果客户端要通过分页的方式从表A中取数据,其中每页20条# I/ L1 ?: B. Q0 [/ P0 H; c
记录,有几种方法?描述每种方法如何处理,有什么优缺点?用SQL写出实现代码。5 O5 m B2 w7 V1 b# \$ _+ d
+ U5 y3 M8 {+ B d. v& g3 f! x0 u4- w5 p8 z! c; X( s8 Y. x
表A定义如下:
. `+ }! u0 O3 E2 {8 i4 D属性 类型8 }& w* t8 {* d- F0 J3 d7 G0 X; Q
Year Integer9 y! W" h! w! d& b) Z
Quarter Varchar(30)
3 S3 M$ Q# _( S: U8 ~9 q P+ N& \Amount float3 r, y$ A) j1 o P" k/ Z* u3 a$ R
1 s) U; |7 X2 i
Year Quarter Amount0 z1 [! L) H8 T O
2000 1 1.1
+ R; J4 G! G7 ?' d0 v2000 2 1.2
8 N* C1 F1 G% K& `2 z3 [; p2000 3 1.3$ ` G/ ?: W7 e5 S. |
2000 4 1.43 [5 D! R5 P( P8 Z
2001 1 2.1
( H. }5 U2 m( W% [: _2001 2 2.2
. W: |9 G! V1 E5 ?: R7 e2001 3 2.3
y# Z3 j4 m! `) g: W4 r2001 4 2.42 T: L) w. c& f% |% i! f+ t
其中每行表表示一个季度的数据。2 j3 }* d# n) c6 l8 m5 D2 I, z/ A7 ^
. ]+ k" J+ L! t9 J8 a! R4 z如果处理表A中的数据,得到如下的结果。
) |- V" W* o. A: d4 pYear Quarter1 Quarter2 Quarter3 Quarter4
9 t7 V, r$ R& W8 c+ b) K2000 1.1 1.2 1.3 1.40 @1 @' v1 U' l0 `# q: R7 e
2001 2.1 2.2 2.3 2.4# Y! a" m- ?) f, c* A$ h
请用SQL写一段代码实现。 |
|