|
|
1
5 S- F( q4 T# h3 o( h6 E现有表bill和表payment结构如下,两表通过pay_id关联:
( a7 }5 Q8 F6 e" v) N) Bbill表――bill_id是帐单标识,charge为帐单金额,pay_id为付款编号,PK:bill_id
2 g: V- E6 d; i) f1 \% obill_id INTEGER
# S5 r/ R) a' B2 Z' S$ Ucharge INTEGER
# c/ B' Y8 @; e3 V3 @pay_id INTEGER0 L- O. @' C0 D
0 F- ~3 G6 j+ C. fpayment表――pay_id为付款编号,charge为付款金额,PK:pay_id% ^3 M: i6 X' S, i# r7 Y V" w1 B
pay_id INTEGER7 v0 f) j2 Y4 R; o
charge INTEGER% b1 u7 P7 A3 ?. z+ n- v
: K3 d0 t5 |7 @. I9 Y* l0 t/ Q
要求更新payment使charge=bill表中同一pay_id的charge之和。% h/ S: a1 C7 D' o- `* v
7 i+ a! u0 \1 m6 l& E3 k
27 C9 O8 [4 m' Z; A5 D% C
起始地 目的地 距离(公里)! G( H* S6 m) h6 K( p: D4 g
A B 1000* ]5 \- ^" ~# O( |/ q$ h; l0 Q
A C 1100+ r7 x% A3 @9 |
A D 900/ }! D7 b* u& l
A E 400
, |( m1 y) E5 h; hB D 3000 O( d2 }+ V# v6 C" |2 ~
D F 6007 g. K; [$ ^2 i" D
E A 400 c0 k4 T& A( H& ] @8 A" x
F G 1000
# k* [+ L" E* n: h8 G% AC B 600
* K4 X, J. u+ P+ A$ C请用SQL语句或一段代码写出从A出发,可达到的目的地(包括间接方式)。
3 X1 F1 _0 N- v1 z" m
$ b1 p4 Z# a0 P) @ K, |' S& g! O3' w. `; @1 t# [8 f
表A定义如下:
7 t s9 Z \; H+ R6 X+ c属性 类型 备注
M" Z3 Z; u6 ? C* v) o% wId Integer PK
6 P* ^ ~/ m* A; z/ Q9 IName Varchar(30)
* u5 Y) e) F* w' S2 ~* Z: kState char(3)( B4 \( H0 C, \* t8 b2 {# }
表A中现有1000万条记录,如果客户端要通过分页的方式从表A中取数据,其中每页20条
$ O8 K# A* |+ E/ `* X, D/ F+ b) \记录,有几种方法?描述每种方法如何处理,有什么优缺点?用SQL写出实现代码。, }' y9 ]* p5 Y$ V) D+ X) ]
~4 b- x% C# n$ i2 A
4
% _3 i' g% P, R' B5 l表A定义如下:
+ z D4 A; q- j8 B; b属性 类型
7 Y1 i9 @7 F I8 RYear Integer
6 R B! S$ ?, ` q" ?3 T9 s/ ]Quarter Varchar(30)
! `% b+ F" k. C- `, s9 `: oAmount float
" \ \. f- I% S$ l: t" v1 Y R, E7 M
0 B+ g( }: b1 `0 Z. u l- @Year Quarter Amount
. h5 J0 l' `3 U9 e1 E1 V2000 1 1.1# y2 {4 a$ W0 ]
2000 2 1.2
L; x/ W9 b( Z1 Q8 @3 p& i2000 3 1.3
3 \/ [/ L7 h2 d5 x2000 4 1.4: T# w9 Y* F( g& A( s, {
2001 1 2.1
' x' _% W1 Q: K( d% s- v! e2001 2 2.2
4 b& Q9 l! x4 q9 q6 |4 l- U& u# G2001 3 2.3
3 u; X# `3 v; v, | w& u: S# f2001 4 2.4# ~4 A1 f7 B$ Q! b
其中每行表表示一个季度的数据。# D5 r3 k2 ^! u# K/ J# v' d( J
; p% ~# ?4 j4 c4 q- L. Q
如果处理表A中的数据,得到如下的结果。5 \7 I; D; O2 ]/ a7 o( W
Year Quarter1 Quarter2 Quarter3 Quarter4
# h$ A5 B6 L0 G6 \2000 1.1 1.2 1.3 1.4
0 E# V( |7 C8 c% |( @2001 2.1 2.2 2.3 2.49 c3 I9 S. W4 M% @0 H2 k
请用SQL写一段代码实现。 |
|