【问题标题】:How to query 3 tables in PSQL?如何在 PSQL 中查询 3 个表?
【发布时间】:2021-05-07 16:38:55
【问题描述】:

我是数据库新手,不知道如何查询这三个表。

我正在尝试找出过去 1 年(表 - 时间?)每种菌株(表菌株)的总死亡人数(表 COVID - TotalDeathUK)

表 COVID

 centerid | patientid | dateid | strainid | totaldeathsuk | 
----------+-----------+--------+----------+---------------+
   100000 |    100000 | 100000 |   100000 |         31369 |       
   100000 |    100000 | 100000 |   100000 |         95382 |       
   100004 |    100004 | 100004 |   100000 |         46031 |

----------------------------------------------------------------

表应变

 strainid |   name    | risk 
----------+-----------+------
   100000 | Fixflex   |   50
   100001 | Cardguard |   85
   100002 | Zaam-Dox  |   53

餐桌时间

 dateid | year |    month     | quater | week | dayofweek |   hour   
--------+------+--------------+--------+------+-----------+----------
 100007 | 2039 | Thin Ice     |      2 |    3 |         7 | 11:54:00
 100008 | 2109 | Parineeta    |      4 |    1 |         6 | 20:12:00
 100011 | 2096 | Crawlspace   |      4 |    2 |         7 | 19:03:00

链接到数据库架构的图像

【问题讨论】:

  • 当你选择jquery时,你认为你打算选择什么?
  • edit您的问题(通过点击下面的edit链接)并添加一些示例数据和基于该数据的预期输出为formatted text .请参阅here,了解有关如何创建漂亮的文本表的一些提示。 (edit 您的问题 - 不要将代码或其他信息放入 cmets)
  • 你问这是不是一个好的设计?如果是这样,没有。
  • @CetinBasoz 我在问如何查询这三个表
  • @a_horse_with_no_name 我想知道例如,如果 theTotalDeathsUk 是 31369,过去 1 年的菌株名称

标签: postgresql select data-warehouse querying


【解决方案1】:
CREATE TABLE Covid(CenterID int,PatientID int, DateID int,StrainID int,TotalDeathUK int);
CREATE TABLE Strain(StrainID int, Name varchar(20),Risk int);
CREATE TABLE Time(DateID int,Year int,Month varchar(20),Quarter int,Week int,DayOfWeek int,Hour varchar(8))
INSERT INTO Covid(CenterID,PatientID, DateID,StrainID,TotalDeathUK)
VALUES(100000,100000,100000,100000,31369),
(100000,100000,100008,100000,95382),
(100004,100004,100011,100000,46031);
INSERT INTO Strain(StrainID, Name,Risk)
VALUES( 100000,'Fixflex ',50),( 100001,'Cardguard ',85)
,( 100002,'Zaam-Dox ',53);
INSERT INTO Time(DateID,Year,Month,Week,Quarter,DayOfWeek,Hour)VALUES(100000,2020,'Thin Ice',2,3,7,'11:54:00'),
(100008,2019,'Parineeta',4,1,6,'20:12:00'),
(100011,2018,'Crawlspace',4,2,7,'19:03:00');
SELECT T.Year,S.StrainID,C.TotalDeathUK FROM Covid AS C
LEFT JOIN Strain AS S ON S.StrainID=C.StrainID
LEFT JOIN Time AS T ON T.DateID=C.DateID
WHERE T.Year=date_part('year', (SELECT current_timestamp))-1
年份 |应变ID |完全死亡 ---: | --------: | ------------: 2020 | 100000 | 31369

db小提琴here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-23
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多