Skip to content

Commit a90c1bc

Browse files
AI Translate 08-window-functions to Simplified-Chinese (#2857)
* [INIT] Start translation to Simplified-Chinese * ๐ŸŒ Translate first-value.md to Simplified-Chinese * ๐ŸŒ Translate first-value.md to Simplified-Chinese * ๐ŸŒ Translate first-value.md to Simplified-Chinese --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent 1fca0be commit a90c1bc

File tree

4 files changed

+268
-120
lines changed

4 files changed

+268
-120
lines changed

โ€Ž.translation-initโ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Translation initialization: 2025-10-17T11:13:57.833983
1+
Translation initialization: 2025-10-20T12:06:14.189361

โ€Ždocs/cn/sql-reference/20-sql-functions/08-window-functions/first-value.mdโ€Ž

Lines changed: 104 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import FunctionDescription from '@site/src/components/FunctionDescription';
66

77
<FunctionDescription description="ๅผ•ๅ…ฅๆˆ–ๆ›ดๆ–ฐไบŽ๏ผšv1.2.697"/>
88

9-
่ฟ”ๅ›ž็ช—ๅฃๆก†ๆžถ๏ผˆwindow frame๏ผ‰ไธญ็š„็ฌฌไธ€ไธชๅ€ผใ€‚
9+
่ฟ”ๅ›ž็ช—ๅฃๆก†ๆžถ๏ผˆWindow Frame๏ผ‰ไธญ็š„็ฌฌไธ€ไธชๅ€ผใ€‚
1010

1111
ๅฆ่ฏทๅ‚้˜…๏ผš
1212

@@ -16,7 +16,7 @@ import FunctionDescription from '@site/src/components/FunctionDescription';
1616
## ่ฏญๆณ•
1717

1818
```sql
19-
FIRST_VALUE(expression)
19+
FIRST_VALUE(expression) [ { RESPECT | IGNORE } NULLS ]
2020
OVER (
2121
[ PARTITION BY partition_expression ]
2222
ORDER BY sort_expression [ ASC | DESC ]
@@ -26,49 +26,122 @@ OVER (
2626

2727
**ๅ‚ๆ•ฐ๏ผš**
2828
- `expression`๏ผšๅฟ…้œ€ใ€‚่ฆ่ฟ”ๅ›ž็ฌฌไธ€ไธชๅ€ผ็š„ๅˆ—ๆˆ–่กจ่พพๅผใ€‚
29-
- `PARTITION BY`๏ผšๅฏ้€‰ใ€‚ๅฐ†่กŒๅˆ’ๅˆ†ไธบๅˆ†ๅŒบใ€‚
30-
- `ORDER BY`๏ผšๅฟ…้œ€ใ€‚็กฎๅฎš็ช—ๅฃๅ†…็š„ๆŽ’ๅบๆ–นๅผใ€‚
31-
- `window_frame`๏ผšๅฏ้€‰ใ€‚ๅฎšไน‰็ช—ๅฃๆก†ๆžถ๏ผˆ้ป˜่ฎคๅ€ผ๏ผšRANGE UNBOUNDED PRECEDING๏ผ‰ใ€‚
29+
- `PARTITION BY`๏ผšๅฏ้€‰ใ€‚ๅฐ†่กŒๅˆ’ๅˆ†ไธบๅˆ†ๅŒบ๏ผˆPartition๏ผ‰ใ€‚
30+
- `ORDER BY`๏ผšๅฟ…้œ€ใ€‚็กฎๅฎš็ช—ๅฃๅ†…็š„ๆŽ’ๅบใ€‚
31+
- `window_frame`๏ผšๅฏ้€‰ใ€‚ๅฎšไน‰็ช—ๅฃๆก†ๆžถใ€‚้ป˜่ฎคๅ€ผไธบ `RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW`ใ€‚
3232

33-
**ๆณจๆ„๏ผš**
33+
**่ฏดๆ˜Ž๏ผš**
3434
- ่ฟ”ๅ›žๆœ‰ๅบ็ช—ๅฃๆก†ๆžถไธญ็š„็ฌฌไธ€ไธชๅ€ผใ€‚
35-
- ๆ”ฏๆŒ `IGNORE NULLS` ๅ’Œ `RESPECT NULLS` ้€‰้กนใ€‚
36-
- ๅฏ็”จไบŽๆŸฅๆ‰พๆฏไธช็ป„ไธญๆœ€ๆ—ฉ/ๆœ€ไฝŽ็š„ๅ€ผใ€‚
35+
- ๆ”ฏๆŒไฝฟ็”จ `IGNORE NULLS` ่ทณ่ฟ‡็ฉบๅ€ผ๏ผŒไฝฟ็”จ `RESPECT NULLS` ไฟๆŒ้ป˜่ฎค่กŒไธบใ€‚
36+
- ๅฝ“้œ€่ฆๅŸบไบŽ่กŒ็š„่ฏญไน‰่€Œไธๆ˜ฏ้ป˜่ฎค็š„ๅŸบไบŽ่Œƒๅ›ด็š„ๆก†ๆžถๆ—ถ๏ผŒ่ฏทๆŒ‡ๅฎšไธ€ไธชๆ˜พๅผ็š„็ช—ๅฃๆก†ๆžถ๏ผˆไพ‹ๅฆ‚๏ผŒ`ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW`๏ผ‰ใ€‚
37+
- ๅฏ็”จไบŽๆŸฅๆ‰พๆฏไธช็ป„ๆˆ–ๆ—ถ้—ด็ช—ๅฃไธญ็š„ๆœ€ๆ—ฉๆˆ–ๆœ€ไฝŽๅ€ผใ€‚
3738

3839
## ็คบไพ‹
3940

4041
```sql
41-
-- ๅˆ›ๅปบ็คบไพ‹ๆ•ฐๆฎ
42-
CREATE TABLE scores (
43-
student VARCHAR(20),
44-
score INT
42+
-- ็คบไพ‹่ฎขๅ•ๆ•ฐๆฎ
43+
CREATE OR REPLACE TABLE orders_window_demo (
44+
customer VARCHAR,
45+
order_id INT,
46+
order_time TIMESTAMP,
47+
amount INT,
48+
sales_rep VARCHAR
4549
);
4650

47-
INSERT INTO scores VALUES
48-
('Alice', 95),
49-
('Bob', 87),
50-
('Charlie', 82),
51-
('David', 78),
52-
('Eve', 92);
51+
INSERT INTO orders_window_demo VALUES
52+
('Alice', 1001, to_timestamp('2024-05-01 09:00:00'), 120, 'Erin'),
53+
('Alice', 1002, to_timestamp('2024-05-01 11:00:00'), 135, NULL),
54+
('Alice', 1003, to_timestamp('2024-05-02 14:30:00'), 125, 'Glen'),
55+
('Bob', 1004, to_timestamp('2024-05-01 08:30:00'), 90, NULL),
56+
('Bob', 1005, to_timestamp('2024-05-01 20:15:00'), 105, 'Kai'),
57+
('Bob', 1006, to_timestamp('2024-05-03 10:00:00'), 95, NULL),
58+
('Carol', 1007, to_timestamp('2024-05-04 09:45:00'), 80, 'Lily');
5359
```
5460

55-
**่Žทๅ–ๆœ€้ซ˜ๅˆ†๏ผˆๆŒ‰ๅˆ†ๆ•ฐ้™ๅบๆŽ’ๅˆ—ๆ—ถ็š„็ฌฌไธ€ไธชๅ€ผ๏ผ‰๏ผš**
61+
**็คบไพ‹ 1๏ผšๆฏไธชๅฎขๆˆท็š„้ฆ–ๆฌก่ดญไนฐ**
5662

5763
```sql
58-
SELECT student, score,
59-
FIRST_VALUE(score) OVER (ORDER BY score DESC) AS highest_score,
60-
FIRST_VALUE(student) OVER (ORDER BY score DESC) AS top_student
61-
FROM scores
62-
ORDER BY score DESC;
64+
SELECT customer,
65+
order_id,
66+
order_time,
67+
amount,
68+
FIRST_VALUE(amount) OVER (
69+
PARTITION BY customer
70+
ORDER BY order_time
71+
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
72+
) AS first_order_amount
73+
FROM orders_window_demo
74+
ORDER BY customer, order_time;
6375
```
6476

6577
็ป“ๆžœ๏ผš
6678
```
67-
student | score | highest_score | top_student
68-
--------+-------+---------------+------------
69-
Alice | 95 | 95 | Alice
70-
Eve | 92 | 95 | Alice
71-
Bob | 87 | 95 | Alice
72-
Charlie | 82 | 95 | Alice
73-
David | 78 | 95 | Alice
79+
customer | order_id | order_time | amount | first_order_amount
80+
---------+----------+----------------------+--------+--------------------
81+
Alice | 1001 | 2024-05-01 09:00:00 | 120 | 120
82+
Alice | 1002 | 2024-05-01 11:00:00 | 135 | 120
83+
Alice | 1003 | 2024-05-02 14:30:00 | 125 | 120
84+
Bob | 1004 | 2024-05-01 08:30:00 | 90 | 90
85+
Bob | 1005 | 2024-05-01 20:15:00 | 105 | 90
86+
Bob | 1006 | 2024-05-03 10:00:00 | 95 | 90
87+
Carol | 1007 | 2024-05-04 09:45:00 | 80 | 80
88+
```
89+
90+
**็คบไพ‹ 2๏ผš่ฟ‡ๅŽป 24 ๅฐๆ—ถๅ†…็š„็ฌฌไธ€็ฌ”่ฎขๅ•**
91+
92+
```sql
93+
SELECT customer,
94+
order_id,
95+
order_time,
96+
FIRST_VALUE(order_id) OVER (
97+
PARTITION BY customer
98+
ORDER BY order_time
99+
RANGE BETWEEN INTERVAL 1 DAY PRECEDING AND CURRENT ROW
100+
) AS first_order_in_24h
101+
FROM orders_window_demo
102+
ORDER BY customer, order_time;
103+
```
104+
105+
็ป“ๆžœ๏ผš
106+
```
107+
customer | order_id | order_time | first_order_in_24h
108+
---------+----------+----------------------+--------------------
109+
Alice | 1001 | 2024-05-01 09:00:00 | 1001
110+
Alice | 1002 | 2024-05-01 11:00:00 | 1001
111+
Alice | 1003 | 2024-05-02 14:30:00 | 1003
112+
Bob | 1004 | 2024-05-01 08:30:00 | 1004
113+
Bob | 1005 | 2024-05-01 20:15:00 | 1004
114+
Bob | 1006 | 2024-05-03 10:00:00 | 1006
115+
Carol | 1007 | 2024-05-04 09:45:00 | 1007
116+
```
117+
118+
**็คบไพ‹ 3๏ผš่ทณ่ฟ‡็ฉบๅ€ผไปฅๆŸฅๆ‰พ็ฌฌไธ€ไธชๆŒ‡ๅฎš็š„้”€ๅ”ฎไปฃ่กจ**
119+
120+
```sql
121+
SELECT customer,
122+
order_id,
123+
sales_rep,
124+
FIRST_VALUE(sales_rep) RESPECT NULLS OVER (
125+
PARTITION BY customer
126+
ORDER BY order_time
127+
) AS first_rep_respect,
128+
FIRST_VALUE(sales_rep) IGNORE NULLS OVER (
129+
PARTITION BY customer
130+
ORDER BY order_time
131+
) AS first_rep_ignore
132+
FROM orders_window_demo
133+
ORDER BY customer, order_id;
134+
```
135+
136+
็ป“ๆžœ๏ผš
137+
```
138+
customer | order_id | sales_rep | first_rep_respect | first_rep_ignore
139+
---------+----------+-----------+-------------------+------------------
140+
Alice | 1001 | Erin | Erin | Erin
141+
Alice | 1002 | NULL | Erin | Erin
142+
Alice | 1003 | Glen | Erin | Erin
143+
Bob | 1004 | NULL | NULL | NULL
144+
Bob | 1005 | Kai | NULL | Kai
145+
Bob | 1006 | NULL | NULL | Kai
146+
Carol | 1007 | Lily | Lily | Lily
74147
```

โ€Ždocs/cn/sql-reference/20-sql-functions/08-window-functions/last-value.mdโ€Ž

Lines changed: 106 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ title: LAST_VALUE
44

55
import FunctionDescription from '@site/src/components/FunctionDescription';
66

7-
<FunctionDescription description="ๆ–ฐๅขžๆˆ–ๆ›ดๆ–ฐไบŽ๏ผšv1.2.697"/>
7+
<FunctionDescription description="ๅผ•ๅ…ฅๆˆ–ๆ›ดๆ–ฐไบŽ๏ผšv1.2.697"/>
88

9-
่ฟ”ๅ›ž็ช—ๅฃๆก†ๆžถ๏ผˆWindow Frame๏ผ‰ไธญ็š„ๆœ€ๅŽไธ€ไธชๅ€ผใ€‚
9+
่ฟ”ๅ›ž็ช—ๅฃๆก†ๆžถไธญ็š„ๆœ€ๅŽไธ€ไธชๅ€ผใ€‚
1010

1111
ๅฆ่ฏทๅ‚้˜…๏ผš
1212

@@ -16,7 +16,7 @@ import FunctionDescription from '@site/src/components/FunctionDescription';
1616
## ่ฏญๆณ•
1717

1818
```sql
19-
LAST_VALUE(expression)
19+
LAST_VALUE(expression) [ { RESPECT | IGNORE } NULLS ]
2020
OVER (
2121
[ PARTITION BY partition_expression ]
2222
ORDER BY sort_expression [ ASC | DESC ]
@@ -26,56 +26,124 @@ OVER (
2626

2727
**ๅ‚ๆ•ฐ๏ผš**
2828
- `expression`๏ผšๅฟ…้œ€ใ€‚่ฆ่ฟ”ๅ›žๆœ€ๅŽไธ€ไธชๅ€ผ็š„ๅˆ—ๆˆ–่กจ่พพๅผใ€‚
29-
- `PARTITION BY`๏ผšๅฏ้€‰ใ€‚ๅฐ†่กŒๅˆ’ๅˆ†ไธบๅˆ†ๅŒบใ€‚
29+
- `PARTITION BY`๏ผšๅฏ้€‰ใ€‚ๅฐ†่กŒๅˆ’ๅˆ†ไธบๅˆ†ๅŒบ๏ผˆPartition๏ผ‰ใ€‚
3030
- `ORDER BY`๏ผšๅฟ…้œ€ใ€‚็กฎๅฎš็ช—ๅฃๅ†…็š„ๆŽ’ๅบๆ–นๅผใ€‚
31-
- `window_frame`๏ผšๅฏ้€‰ใ€‚ๅฎšไน‰็ช—ๅฃๆก†ๆžถ๏ผˆ้ป˜่ฎคไธบ๏ผšRANGE UNBOUNDED PRECEDING๏ผ‰ใ€‚
31+
- `window_frame`๏ผšๅฏ้€‰ใ€‚ๅฎšไน‰็ช—ๅฃๆก†ๆžถใ€‚้ป˜่ฎคๅ€ผไธบ `RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW`ใ€‚
3232

33-
**ๆณจๆ„๏ผš**
33+
**่ฏดๆ˜Ž๏ผš**
3434
- ่ฟ”ๅ›žๆœ‰ๅบ็ช—ๅฃๆก†ๆžถไธญ็š„ๆœ€ๅŽไธ€ไธชๅ€ผใ€‚
35-
- ๆ”ฏๆŒ `IGNORE NULLS` ๅ’Œ `RESPECT NULLS` ้€‰้กนใ€‚
36-
- ้€šๅธธ้œ€่ฆๆ˜พๅผๆŒ‡ๅฎš็ช—ๅฃๆก†ๆžถๆ‰่ƒฝ่Žทๅพ—้ข„ๆœŸ็ป“ๆžœใ€‚
37-
- ๅฏ็”จไบŽๆŸฅๆ‰พๆฏไธช็ป„ไธญ็š„ๆœ€ๆ–ฐ/ๆœ€้ซ˜ๅ€ผใ€‚
35+
- ๆ”ฏๆŒไฝฟ็”จ `IGNORE NULLS` ่ทณ่ฟ‡็ฉบๅ€ผ๏ผŒไฝฟ็”จ `RESPECT NULLS` ไฟๆŒ้ป˜่ฎค่กŒไธบใ€‚
36+
- ๅฝ“้œ€่ฆ่Žทๅ–ๅˆ†ๅŒบ๏ผˆPartition๏ผ‰็š„็œŸๆญฃๆœ€ๅŽไธ€่กŒๆ—ถ๏ผŒ่ฏทไฝฟ็”จๅœจๅฝ“ๅ‰่กŒไน‹ๅŽ็ป“ๆŸ็š„ๆก†ๆžถ๏ผˆไพ‹ๅฆ‚๏ผŒ`ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING`๏ผ‰ใ€‚
37+
- ๅฏ็”จไบŽๆŸฅๆ‰พๆฏไธช็ป„ไธญ็š„ๆœ€ๆ–ฐๅ€ผ๏ผŒๆˆ–ๅœจๅ‘ๅ‰็œ‹็š„็ช—ๅฃไธญๆŸฅๆ‰พๆœ€่ฟ‘็š„ๅ€ผใ€‚
3838

3939
## ็คบไพ‹
4040

4141
```sql
42-
-- ๅˆ›ๅปบ็คบไพ‹ๆ•ฐๆฎ
43-
CREATE TABLE scores (
44-
student VARCHAR(20),
45-
score INT
42+
-- ็คบไพ‹่ฎขๅ•ๆ•ฐๆฎ
43+
CREATE OR REPLACE TABLE orders_window_demo (
44+
customer VARCHAR,
45+
order_id INT,
46+
order_time TIMESTAMP,
47+
amount INT,
48+
sales_rep VARCHAR
4649
);
4750

48-
INSERT INTO scores VALUES
49-
('Alice', 95),
50-
('Bob', 87),
51-
('Charlie', 82),
52-
('David', 78),
53-
('Eve', 92);
51+
INSERT INTO orders_window_demo VALUES
52+
('Alice', 1001, to_timestamp('2024-05-01 09:00:00'), 120, 'Erin'),
53+
('Alice', 1002, to_timestamp('2024-05-01 11:00:00'), 135, NULL),
54+
('Alice', 1003, to_timestamp('2024-05-02 14:30:00'), 125, 'Glen'),
55+
('Bob', 1004, to_timestamp('2024-05-01 08:30:00'), 90, NULL),
56+
('Bob', 1005, to_timestamp('2024-05-01 20:15:00'), 105, 'Kai'),
57+
('Bob', 1006, to_timestamp('2024-05-03 10:00:00'), 95, NULL),
58+
('Carol', 1007, to_timestamp('2024-05-04 09:45:00'), 80, 'Lily');
5459
```
5560

56-
**่Žทๅ–ๆœ€ไฝŽๅˆ†๏ผˆๆŒ‰ๅˆ†ๆ•ฐ้™ๅบๆŽ’ๅˆ—ๆ—ถ็š„ๆœ€ๅŽไธ€ไธชๅ€ผ๏ผ‰๏ผš**
61+
**็คบไพ‹ 1๏ผšๆฏไธชๅฎขๆˆทๅˆ†ๅŒบไธญ็š„ๆœ€ๆ–ฐ่ฎขๅ•**
5762

5863
```sql
59-
SELECT student, score,
60-
LAST_VALUE(score) OVER (
61-
ORDER BY score DESC
62-
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
63-
) AS lowest_score,
64-
LAST_VALUE(student) OVER (
65-
ORDER BY score DESC
66-
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
67-
) AS lowest_student
68-
FROM scores
69-
ORDER BY score DESC;
64+
SELECT customer,
65+
order_id,
66+
order_time,
67+
LAST_VALUE(order_id) OVER (
68+
PARTITION BY customer
69+
ORDER BY order_time
70+
ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
71+
) AS last_order_for_customer
72+
FROM orders_window_demo
73+
ORDER BY customer, order_time;
7074
```
7175

7276
็ป“ๆžœ๏ผš
7377
```
74-
student | score | lowest_score | lowest_student
75-
--------+-------+--------------+---------------
76-
Alice | 95 | 78 | David
77-
Eve | 92 | 78 | David
78-
Bob | 87 | 78 | David
79-
Charlie | 82 | 78 | David
80-
David | 78 | 78 | David
78+
customer | order_id | order_time | last_order_for_customer
79+
---------+----------+----------------------+-------------------------
80+
Alice | 1001 | 2024-05-01 09:00:00 | 1003
81+
Alice | 1002 | 2024-05-01 11:00:00 | 1003
82+
Alice | 1003 | 2024-05-02 14:30:00 | 1003
83+
Bob | 1004 | 2024-05-01 08:30:00 | 1006
84+
Bob | 1005 | 2024-05-01 20:15:00 | 1006
85+
Bob | 1006 | 2024-05-03 10:00:00 | 1006
86+
Carol | 1007 | 2024-05-04 09:45:00 | 1007
87+
```
88+
89+
**็คบไพ‹ 2๏ผšๅœจๆฏไธชๅฎขๆˆทๅ†…ๅ‘ๅ‰ๆŸฅ็œ‹ 12 ๅฐๆ—ถ**
90+
91+
```sql
92+
SELECT customer,
93+
order_id,
94+
order_time,
95+
amount,
96+
LAST_VALUE(amount) OVER (
97+
PARTITION BY customer
98+
ORDER BY order_time
99+
RANGE BETWEEN CURRENT ROW AND INTERVAL 12 HOUR FOLLOWING
100+
) AS last_amount_next_12h
101+
FROM orders_window_demo
102+
ORDER BY customer, order_time;
103+
```
104+
105+
็ป“ๆžœ๏ผš
106+
```
107+
customer | order_id | order_time | amount | last_amount_next_12h
108+
---------+----------+----------------------+--------+----------------------
109+
Alice | 1001 | 2024-05-01 09:00:00 | 120 | 135
110+
Alice | 1002 | 2024-05-01 11:00:00 | 135 | 135
111+
Alice | 1003 | 2024-05-02 14:30:00 | 125 | 125
112+
Bob | 1004 | 2024-05-01 08:30:00 | 90 | 105
113+
Bob | 1005 | 2024-05-01 20:15:00 | 105 | 105
114+
Bob | 1006 | 2024-05-03 10:00:00 | 95 | 95
115+
Carol | 1007 | 2024-05-04 09:45:00 | 80 | 80
116+
```
117+
118+
**็คบไพ‹ 3๏ผšๅ‘ๅ‰ๆ‰ซๆๆœ€ๅŽไธ€ไธช้”€ๅ”ฎไปฃ่กจๆ—ถ่ทณ่ฟ‡็ฉบๅ€ผ**
119+
120+
```sql
121+
SELECT customer,
122+
order_id,
123+
sales_rep,
124+
LAST_VALUE(sales_rep) RESPECT NULLS OVER (
125+
PARTITION BY customer
126+
ORDER BY order_time
127+
ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
128+
) AS last_rep_respect,
129+
LAST_VALUE(sales_rep) IGNORE NULLS OVER (
130+
PARTITION BY customer
131+
ORDER BY order_time
132+
ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
133+
) AS last_rep_ignore
134+
FROM orders_window_demo
135+
ORDER BY customer, order_id;
136+
```
137+
138+
็ป“ๆžœ๏ผš
139+
```
140+
customer | order_id | sales_rep | last_rep_respect | last_rep_ignore
141+
---------+----------+-----------+------------------+-----------------
142+
Alice | 1001 | Erin | Glen | Glen
143+
Alice | 1002 | NULL | Glen | Glen
144+
Alice | 1003 | Glen | Glen | Glen
145+
Bob | 1004 | NULL | NULL | Kai
146+
Bob | 1005 | Kai | NULL | Kai
147+
Bob | 1006 | NULL | NULL | Kai
148+
Carol | 1007 | Lily | Lily | Lily
81149
```

0 commit comments

Comments
ย (0)