开始使用免费开始使用

使用 FILTER 创建数据透视表

在上一个练习中,您编写了一个查询,用于统计四个机构分别开具的停车违规(按其数字代码)的数量。结果包含了所需信息,但呈现格式会在结果中重复显示每个 violation_code,最多可达 4 次(对应每个被选中的 issuing_agency)。通过创建数据透视表,可以更紧凑地表示同样的数据。

在本练习中,您将使用 FILTER 子句编写查询,以数据透视表的形式生成结果。这样的展示更便于在报告中呈现这四个相关机构分别开具的停车违规情况。

本练习是课程的一部分

在 PostgreSQL 数据库中清理数据

查看课程

练习说明

  • Police 列定义为在 issuing_agency 等于 P 时,每个 violation_code 的记录数。
  • Sanitation 列定义为在 issuing_agency 等于 S 时,每个 violation_code 的记录数。
  • Parks 列定义为在 issuing_agency 等于 K 时,每个 violation_code 的记录数。
  • Transportation 列定义为在 issuing_agency 等于 V 时,每个 violation_code 的记录数。

交互式实操练习

通过完成这段示例代码来试试这个练习。

SELECT 
	violation_code, 
    -- Define the "Police" column
	COUNT(issuing_agency) FILTER (WHERE issuing_agency = '___') AS "Police",
    -- Define the "Sanitation" column
	COUNT(___) FILTER (WHERE ___ = '___') AS "___",
    -- Define the "Parks" column
	___(___) ___ (WHERE ___ = '___') AS "___",
    -- Define the "Transportation" column
	___(___) ___ (___ ___ = '___') AS "___"
FROM 
	parking_violation 
GROUP BY 
	violation_code
ORDER BY 
	violation_code
编辑并运行代码