|
|
1
, U6 S' V8 i7 x H4 k现有表bill和表payment结构如下,两表通过pay_id关联:( A- U0 C/ `) O1 y' I6 |% e
bill表――bill_id是帐单标识,charge为帐单金额,pay_id为付款编号,PK:bill_id0 i# u& I" K( B$ B) m+ L/ b
bill_id INTEGER
$ n& I: Y4 }; v9 a. c5 ycharge INTEGER) _4 R0 A! W# N s
pay_id INTEGER
- h o* C5 ^2 \- l0 |' |+ A7 ]8 K ^& a
payment表――pay_id为付款编号,charge为付款金额,PK:pay_id
% H9 r6 d1 [* V+ v# vpay_id INTEGER, y7 S' X$ `) E
charge INTEGER" z' \( O- y) I! F" i8 I) G( B1 \0 l* q
( e4 N' ?1 p& m% f# K' L. t要求更新payment使charge=bill表中同一pay_id的charge之和。
3 ] q8 m: }3 A6 a I' R6 h
- |- M1 w% F( T5 X2
) \! S7 q; M+ ^* t/ O起始地 目的地 距离(公里)
8 L. o/ |! t6 j% l9 x6 n, qA B 1000
* r( h2 {2 R+ e, x2 lA C 1100
: x/ O( J/ B, p2 z8 yA D 900
6 u _+ Q7 C2 g" e/ WA E 4009 o2 Q3 T+ j; \* j- C* m" [
B D 300! ~/ D+ F" W) W
D F 600. a" u9 _" z7 B9 Z' m- S# x" v
E A 400
9 o' v& \& j( SF G 1000) p! J7 t$ u5 K$ g+ Y
C B 600* m5 S0 K( s$ L% l( _
请用SQL语句或一段代码写出从A出发,可达到的目的地(包括间接方式)。
& Z6 W! b8 P7 _' m. b3 k! i
& T# _6 c# ?; w) h0 f3
: O) i0 ]3 V& ]& M, [1 _表A定义如下:
1 K. f; L' h4 |2 H& S: ]1 `, g属性 类型 备注
4 F1 L/ {+ z* T+ \& T& i- v9 EId Integer PK5 |- D( ?$ [6 C$ J3 h4 F+ g
Name Varchar(30)
% ~! E$ q/ r! ]8 x1 ]; ^State char(3)4 {& h, e6 ^' d' f" l
表A中现有1000万条记录,如果客户端要通过分页的方式从表A中取数据,其中每页20条
0 J" l( L. L* I4 C. g( ~9 m% G, Z& T7 D记录,有几种方法?描述每种方法如何处理,有什么优缺点?用SQL写出实现代码。- M, ^. e* K) m1 ]
" U8 E# J' U2 y+ B, {4. |9 _" Y4 H, {! c( ~
表A定义如下:
) L: v- E1 j) V0 i$ a* k! p( O属性 类型
7 |9 O0 V7 O9 d3 T4 `Year Integer
* h/ E' j3 g4 H) rQuarter Varchar(30)" h: x; ?4 P- M; z. @8 Q) R
Amount float2 _3 L/ H: U7 C: }
4 V- N$ f% n; |! [! D* R4 z- |- i
Year Quarter Amount( } B$ w1 D) [8 m% }- }& ~
2000 1 1.1
$ Z% C' Z- w; k" Z9 h2000 2 1.26 O% D! \8 }8 M
2000 3 1.3- T- h" I$ T2 c* S, |0 P9 J" Y; `9 ^" Q
2000 4 1.4
$ Z4 V& T( K1 l+ T2001 1 2.1
, Q7 r7 l5 a* P6 o! v5 i/ ~2001 2 2.2
$ E: S, Q" J1 \& f2001 3 2.3) O) _' p3 J: f/ ^: [" `3 y: S4 V
2001 4 2.4' a, l7 t; z; z6 |: g6 b# Z
其中每行表表示一个季度的数据。
8 g* k* D. j1 M' A) x% E3 m t9 l
3 ]& N! b# n) g/ L8 s如果处理表A中的数据,得到如下的结果。
8 x" [% M/ S# R. {! jYear Quarter1 Quarter2 Quarter3 Quarter4. p; V9 n' S8 f5 E
2000 1.1 1.2 1.3 1.4- c5 F) F" O* [
2001 2.1 2.2 2.3 2.43 n r1 Y% t0 j% v# Y
请用SQL写一段代码实现。 |
|