簡體   English   中英

如何創建由具有此結構的兩個或多個表連接而產生的表?

[英]How to create a table resulting from joining of two or more table with this structure?

假設我有兩個具有以下結構和相同值的表-

+-----------+-----------+---------+-------+--------+---------+--------+---------+
|   TEACHER |   STUDENT |   CLASS | SEC   |   HB_a |   VHB_b |   HG_c |   VHG_d |
|-----------+-----------+---------+-------+--------+---------+--------+---------|
|         1 |         - |       - | -     |      1 |       1 |      1 |       1 |
|         - |         1 |      10 | D     |      1 |       1 |      1 |       1 |
|         - |         1 |       9 | D     |      1 |       1 |      1 |       1 |
+-----------+-----------+---------+-------+--------+---------+--------+---------+

CLASS 可以 go 來自 6-12 和 SEC 來自 AZ,

*在 STUDENT、CLASS、SEC 中沒有任何內容,而在 TEACHER 中有一些價值,反之亦然。

現在我想創建一個表格,將兩個表格與上面給出的確切結構和數據連接起來......即,我希望結果如下所示 -

+-----------+-----------+---------+-------+--------+---------+--------+---------+
|   TEACHER |   STUDENT |   CLASS | SEC   |   HB_a |   VHB_b |   HG_c |   VHG_d |
|-----------+-----------+---------+-------+--------+---------+--------+---------|
|         2 |         - |       - | -     |      2 |       2 |      2 |       2 |
|         - |         2 |      10 | D     |      2 |       2 |      2 |       2 |
|         - |         2 |       9 | D     |      2 |       2 |      2 |       2 |
+-----------+-----------+---------+-------+--------+---------+--------+---------+

我試過這樣的東西,但效果不好,output 不是我想要的-

__tbl_sy = f"""
CREATE TABLE <tbl>
AS SELECT CLASS, SEC, SUM(TEACHER), SUM(STUDENT), SUM(HB_a), SUM(VHB_b), SUM(HG_c), SUM(VHG_d)
FROM <tbl1>
UNION
SELECT CLASS, SEC, SUM(TEACHER), SUM(STUDENT), SUM(HB_a), SUM(VHB_b), SUM(HG_c), SUM(VHG_d)
FROM <tbl2>
GROUP BY CLASS, SEC
"""
Cursor.execute(__tbl_sy)

對於您發布的示例數據,這將起作用:

select 
  sum(teacher) teacher, sum(student) student, 
  class, sec, 
  sum(hb_a) hb_a, sum(vhb_b) vhb_b, sum(hg_c) hg_c, sum(vhg_d) vhg_d
from (
  select * from tbl1  
  union all
  select * from tbl2
)  
group by class, sec

請參閱演示
結果:

| teacher | student | CLASS | SEC | hb_a | vhb_b | hg_c | vhg_d |
| ------- | ------- | ----- | --- | ---- | ----- | ---- | ----- |
| 2       |         |       |     | 2    | 2     | 2    | 2     |
|         | 2       | 10    | D   | 2    | 2     | 2    | 2     |
|         | 2       | 9     | D   | 2    | 2     | 2    | 2     |

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM