INITIAL CODELAB / TEACH

数据库与数据分析教学

交互实验区 · 观察实际结果

表结构、合成数据与清理规则
CREATE TABLE centres (
  centre_id TEXT PRIMARY KEY,
  centre_name TEXT NOT NULL,
  capacity INTEGER CHECK (capacity >= 0)
);
CREATE TABLE enrolments_raw (
  source_row INTEGER PRIMARY KEY,
  record_id TEXT NOT NULL,
  centre_id TEXT NOT NULL,
  week TEXT NOT NULL,
  enrolled INTEGER NOT NULL,
  attended INTEGER
);
INSERT INTO centres VALUES
 ('C01','Demo Centre A',24),('C02','Demo Centre B',20),
 ('C03','Demo Centre C',18),('C04','Demo Centre D',NULL);
INSERT INTO enrolments_raw VALUES
 (1,'E01','C01','W1',20,18),(2,'E02','C02','W1',15,NULL),
 (3,'E03','C03','W1',12,0),(4,'E04','C99','W1',8,6),
 (5,'E05','C01','W2',21,19),(6,'E05','C01','W2',21,19),
 (7,'E06','C02','W2',16,14),(8,'E07','C04','W1',9,8);
-- Keep staging records intact. Inspect repeats before choosing a policy.
CREATE VIEW enrolments_clean AS
 SELECT source_row,record_id,centre_id,week,enrolled,attended
 FROM (SELECT *, ROW_NUMBER() OVER
       (PARTITION BY record_id ORDER BY source_row) AS occurrence
       FROM enrolments_raw) ranked
 WHERE occurrence = 1;

通过 PGlite,在浏览器独立线程的内存中运行真正的 PostgreSQL。首次使用加载约 15 MB。查询事务只读,重置会丢弃临时数据库,不涉及后端或数据上传。

按需加载 Python、pandas 和 NumPy,总计约 22 MB。这里会实际执行 Python 与六项样例核对。编辑只临时保留,刷新前请下载保存。

网站隐私

此页面没有咨询表单、分析服务或第三方字体请求。在浏览器存储可用时,语言、外观与动效偏好仅保存在本浏览器。

网站上线后,托管服务商可能处理常规请求日志。未来接入联系服务时,需补充相应的信息处理说明。